Module OpamStubs
OS-specific functions requiring C code on at least one platform.
Most functions are Windows-specific and raise an exception on other platforms.
include module type of sig ... end
type console_screen_buffer_info
= OpamStubsTypes.console_screen_buffer_info
=
{
size : int * int;
cursorPosition : int * int;
attributes : int;
window : int * int * int * int;
maximumWindowSize : int * int;
}
type console_font_infoex
= OpamStubsTypes.console_font_infoex
=
{
font : int;
fontSize : int * int;
fontFamily : int;
fontWeight : int;
faceName : string;
}
type handle
= OpamStubsTypes.handle
type stdhandle
= OpamStubsTypes.stdhandle
=
|
STD_INPUT_HANDLE
|
STD_OUTPUT_HANDLE
|
STD_ERROR_HANDLE
type registry_root
= OpamStubsTypes.registry_root
=
|
HKEY_CLASSES_ROOT
|
HKEY_CURRENT_CONFIG
|
HKEY_CURRENT_USER
|
HKEY_LOCAL_MACHINE
|
HKEY_USERS
type 'a registry_value
= 'a OpamStubsTypes.registry_value
=
|
REG_SZ : string registry_value
type shGFP_type
= OpamStubsTypes.shGFP_type
=
|
SHGFP_TYPE_CURRENT
|
SHGFP_TYPE_DEFAULT
type ('a, 'b, 'c) winmessage
= ('a, 'b, 'c) OpamStubsTypes.winmessage
=
|
WM_SETTINGCHANGE : (int, string, int) winmessage
val getpid : unit -> int
On Windows, this returns the actual process ID, rather than the non-unique faked process ID returned by the Microsoft C Runtime (see https://caml.inria.fr/mantis/view.php?id=4034).
On all other platforms, this is just an alias for
Unix.getpid
.
val getCurrentProcessID : unit -> int32
Windows only. As
getpid
, but without the possibility of truncating the ID on 32-bit platforms.
val getConsoleScreenBufferInfo : handle -> console_screen_buffer_info
Windows only. Return current Console screen buffer information.
val setConsoleTextAttribute : handle -> int -> unit
Windows only. Set the console's text attribute setting.
val fillConsoleOutputCharacter : handle -> char -> int -> (int * int) -> bool
Windows only.
fillConsoleOutputCharacter buffer c n (x, y)
writesc
n
times starting at the given coordinate (and wrapping if required).
val getConsoleMode : handle -> int
Windows only. Returns the input/output mode of the console screen buffer referred to by the handle.
- raises Not_found
If the handle does not refer to a console.
val setConsoleMode : handle -> int -> bool
Windows only. Sets the input/output mode of the console screen buffer referred to by the handle, returning
true
if the operation isr successful.
val getWindowsVersion : unit -> int * int * int * int
Windows only. Returns the Windows version as
(major, minor, build, revision)
. This function only works if opam is compiled OCaml 4.06.0 or later, it returns(0, 0, 0, 0)
otherwise.
val isWoW64 : unit -> bool
Returns
false
unless this process is a 32-bit Windows process running in the WoW64 sub-system (i.e. is being run on 64-bit Windows).
val waitpids : int list -> int -> int * Unix.process_status
Windows only. Given a list
pids
withlength
elements,waitpids pids length
behaves likeUnix.wait
, returning the pid and exit status of the first process to terminate.
val writeRegistry : registry_root -> string -> string -> 'a registry_value -> 'a -> unit
Windows only.
writeRegistry root key name value_type value
sets the valuename
of typevalue_type
in registry keykey
ofroot
tovalue
.- raises Failure
If the value could not be set.
- raises Not_found
If
key
does not exist.
val getCurrentConsoleFontEx : handle -> bool -> console_font_infoex
Windows only. Gets information on the current console output font.
val create_glyph_checker : string -> handle * handle
Windows only. Given a font name, returns a pair consisting of a screen DC and a font object, which will have been selected into the DC.
- raises Failure
If anything goes wrong with the GDI calls.
val delete_glyph_checker : (handle * handle) -> unit
Windows only. Given
(dc, font)
, deletes the font object and releases the DC.
val has_glyph : (handle * handle) -> OpamCompat.Uchar.t -> bool
Windows only.
has_glyph (dc, font) scalar
returnstrue
iffont
contains a glyph forscalar
.- raises Failure
If the call to
GetGlyphIndicesW
fails.
val isWoW64Process : int32 -> bool
Windows only. General version of
isWoW64
for any given process ID. See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684139.aspx
val process_putenv : int32 -> string -> string -> bool
Windows only.
process_putenv pid name value
sets the environment variablename
tovalue
in given process ID (Unix.putenv
must also be called to update the value in the current process). This function must not be called if the target process is 32-bit and the current process is 64-bit or vice versa (outcomes vary from a no-op to a segfault).
val shGetFolderPath : int -> shGFP_type -> string
Windows only.
shGetFolderPath nFolder dwFlags
retrieves the location of a special folder by CSIDL value. See https://msdn.microsoft.com/en-us/library/windows/desktop/bb762181.aspx
val sendMessageTimeout : nativeint -> int -> int -> ('a, 'b, 'c) winmessage -> 'a -> 'b -> int * 'c
Windows only.
sendMessageTimeout hwnd timeout flags message wParam lParam
sends a message to the given handle, but is guaranteed to return withintimeout
milliseconds. The result consists of two parts,fst
is the return value from SendMessageTimeout,snd
depends on both the message andfst
. See https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952.aspx