-USING: alien alien.accessors alien.c-types byte-arrays
+USING: alien alien.accessors alien.c-types alien.data byte-arrays
continuations destructors io.ports io.timeouts io.sockets
io.sockets.private io namespaces io.streams.duplex
io.backend.windows io.sockets.windows io.backend.windows.nt
windows.winsock kernel libc math sequences threads system
-combinators accessors classes.struct windows.kernel32 ;
+combinators accessors classes.struct windows.kernel32
+windows.types ;
IN: io.sockets.windows.nt
: malloc-int ( n -- alien )
SIO_GET_EXTENSION_FUNCTION_POINTER
WSAID_CONNECTEX
GUID heap-size
- "void*" <c-object>
+ { void* }
[
- "void*" heap-size
- "DWORD" <c-object>
+ void* heap-size
+ DWORD <c-object>
f
f
WSAIoctl SOCKET_ERROR = [
winsock-error-string throw
] when
- ] keep *void* ;
+ ] [ ] with-out-parameters ;
TUPLE: ConnectEx-args port
s name namelen lpSendBuffer dwSendDataLength
[ lpOverlapped>> ]
[ ptr>> ]
} cleave
- "int"
- { "SOCKET" "sockaddr_in*" "int" "PVOID" "DWORD" "LPDWORD" "void*" }
- "stdcall" alien-indirect drop
+ int
+ { SOCKET void* int PVOID DWORD LPDWORD void* }
+ stdcall alien-indirect drop
winsock-error-string [ throw ] when* ; inline
M: object establish-connection ( client-out remote -- )