mirror of https://github.com/buggins/dlangui.git
239 lines
5.5 KiB
D
239 lines
5.5 KiB
D
/***********************************************************************\
|
|
* nb30.d *
|
|
* *
|
|
* Windows API header module *
|
|
* *
|
|
* Translated from MinGW Windows headers *
|
|
* by Stewart Gordon *
|
|
* *
|
|
* Placed into public domain *
|
|
\***********************************************************************/
|
|
module win32.nb30;
|
|
version(Windows):
|
|
|
|
private import win32.windef;
|
|
|
|
const size_t
|
|
NCBNAMSZ = 16,
|
|
MAX_LANA = 254;
|
|
|
|
// FIXME: are these really two sets of constants?
|
|
enum : UCHAR {
|
|
REGISTERING = 0,
|
|
REGISTERED = 4,
|
|
DEREGISTERED,
|
|
DUPLICATE,
|
|
DUPLICATE_DEREG, // = 7
|
|
UNIQUE_NAME = 0,
|
|
GROUP_NAME = 0x80,
|
|
NAME_FLAGS_MASK = 0x87
|
|
}
|
|
|
|
enum : UCHAR {
|
|
LISTEN_OUTSTANDING = 1,
|
|
CALL_PENDING,
|
|
SESSION_ESTABLISHED,
|
|
HANGUP_PENDING,
|
|
HANGUP_COMPLETE,
|
|
SESSION_ABORTED // = 6
|
|
}
|
|
|
|
const char[4]
|
|
ALL_TRANSPORTS = "M\0\0\0",
|
|
MS_NBF = "MNBF";
|
|
|
|
enum : UCHAR {
|
|
NCBCALL = 0x10,
|
|
NCBLISTEN,
|
|
NCBHANGUP, // = 0x12
|
|
NCBSEND = 0x14,
|
|
NCBRECV,
|
|
NCBRECVANY,
|
|
NCBCHAINSEND, // = 0x17
|
|
NCBDGSEND = 0x20,
|
|
NCBDGRECV,
|
|
NCBDGSENDBC,
|
|
NCBDGRECVBC, // = 0x23,
|
|
NCBADDNAME = 0x30,
|
|
NCBDELNAME,
|
|
NCBRESET,
|
|
NCBASTAT,
|
|
NCBSSTAT,
|
|
NCBCANCEL,
|
|
NCBADDGRNAME,
|
|
NCBENUM, // = 0x37
|
|
NCBUNLINK = 0x70,
|
|
NCBSENDNA,
|
|
NCBCHAINSENDNA,
|
|
NCBLANSTALERT, // = 0x73
|
|
NCBACTION = 0x77,
|
|
NCBFINDNAME,
|
|
NCBTRACE // = 0x79
|
|
}
|
|
|
|
const UCHAR ASYNCH = 0x80;
|
|
|
|
enum : UCHAR {
|
|
NRC_GOODRET = 0x00,
|
|
NRC_BUFLEN = 0x01,
|
|
NRC_ILLCMD = 0x03,
|
|
NRC_CMDTMO = 0x05,
|
|
NRC_INCOMP,
|
|
NRC_BADDR,
|
|
NRC_SNUMOUT,
|
|
NRC_NORES,
|
|
NRC_SCLOSED,
|
|
NRC_CMDCAN, // = 0x0b
|
|
NRC_DUPNAME = 0x0d,
|
|
NRC_NAMTFUL,
|
|
NRC_ACTSES, // = 0x0f,
|
|
NRC_LOCTFUL = 0x11,
|
|
NRC_REMTFUL,
|
|
NRC_ILLNN,
|
|
NRC_NOCALL,
|
|
NRC_NOWILD,
|
|
NRC_INUSE,
|
|
NRC_NAMERR,
|
|
NRC_SABORT,
|
|
NRC_NAMCONF, // = 0x19
|
|
NRC_IFBUSY = 0x21,
|
|
NRC_TOOMANY,
|
|
NRC_BRIDGE,
|
|
NRC_CANOCCR, // = 0x24
|
|
NRC_CANCEL = 0x26,
|
|
NRC_DUPENV = 0x30,
|
|
NRC_ENVNOTDEF = 0x34,
|
|
NRC_OSRESNOTAV,
|
|
NRC_MAXAPPS,
|
|
NRC_NOSAPS,
|
|
NRC_NORESOURCES,
|
|
NRC_INVADDRESS, // = 0x39
|
|
NRC_INVDDID = 0x3B,
|
|
NRC_LOCKFAIL = 0x3C,
|
|
NRC_OPENERR = 0x3f,
|
|
NRC_SYSTEM = 0x40,
|
|
NRC_PENDING = 0xff
|
|
}
|
|
|
|
struct ACTION_HEADER {
|
|
union {
|
|
/* transport_id is defined as a ULONG, but both the above constants
|
|
* and the documented description suggest it should be a char[4]
|
|
*/
|
|
ULONG transport_id;
|
|
char[4] c_transport_id;
|
|
}
|
|
USHORT action_code;
|
|
USHORT reserved;
|
|
}
|
|
alias ACTION_HEADER* PACTION_HEADER;
|
|
|
|
struct ADAPTER_STATUS {
|
|
UCHAR[6] adapter_address;
|
|
UCHAR rev_major;
|
|
UCHAR reserved0;
|
|
UCHAR adapter_type;
|
|
UCHAR rev_minor;
|
|
WORD duration;
|
|
WORD frmr_recv;
|
|
WORD frmr_xmit;
|
|
WORD iframe_recv_err;
|
|
WORD xmit_aborts;
|
|
DWORD xmit_success;
|
|
DWORD recv_success;
|
|
WORD iframe_xmit_err;
|
|
WORD recv_buff_unavail;
|
|
WORD t1_timeouts;
|
|
WORD ti_timeouts;
|
|
DWORD reserved1;
|
|
WORD free_ncbs;
|
|
WORD max_cfg_ncbs;
|
|
WORD max_ncbs;
|
|
WORD xmit_buf_unavail;
|
|
WORD max_dgram_size;
|
|
WORD pending_sess;
|
|
WORD max_cfg_sess;
|
|
WORD max_sess;
|
|
WORD max_sess_pkt_size;
|
|
WORD name_count;
|
|
}
|
|
alias ADAPTER_STATUS* PADAPTER_STATUS;
|
|
|
|
struct FIND_NAME_BUFFER {
|
|
/* From Win32 API docs
|
|
*
|
|
* length
|
|
* Specifies the length, in bytes, of the FIND_NAME_BUFFER
|
|
* structure. Although this structure always occupies 33 bytes,
|
|
* not all of the structure is necessarily valid.
|
|
*
|
|
* On this basis, should length be initialised?
|
|
*/
|
|
UCHAR length;
|
|
UCHAR access_control;
|
|
UCHAR frame_control;
|
|
UCHAR[6] destination_addr;
|
|
UCHAR[6] source_addr;
|
|
UCHAR[18] routing_info;
|
|
}
|
|
alias FIND_NAME_BUFFER* PFIND_NAME_BUFFER;
|
|
|
|
struct FIND_NAME_HEADER {
|
|
WORD node_count;
|
|
UCHAR reserved;
|
|
UCHAR unique_group;
|
|
}
|
|
alias FIND_NAME_HEADER* PFIND_NAME_HEADER;
|
|
|
|
struct LANA_ENUM {
|
|
UCHAR length;
|
|
UCHAR[MAX_LANA+1] lana;
|
|
}
|
|
alias LANA_ENUM* PLANA_ENUM;
|
|
|
|
struct NAME_BUFFER {
|
|
UCHAR[NCBNAMSZ] name;
|
|
UCHAR name_num;
|
|
UCHAR name_flags;
|
|
}
|
|
alias NAME_BUFFER* PNAME_BUFFER;
|
|
|
|
struct NCB {
|
|
UCHAR ncb_command;
|
|
UCHAR ncb_retcode;
|
|
UCHAR ncb_lsn;
|
|
UCHAR ncb_num;
|
|
PUCHAR ncb_buffer;
|
|
WORD ncb_length;
|
|
UCHAR[NCBNAMSZ] ncb_callname;
|
|
UCHAR[NCBNAMSZ] ncb_name;
|
|
UCHAR ncb_rto;
|
|
UCHAR ncb_sto;
|
|
extern (Windows) void function(NCB*) ncb_post;
|
|
UCHAR ncb_lana_num;
|
|
UCHAR ncb_cmd_cplt;
|
|
UCHAR ncb_reserve[10];
|
|
HANDLE ncb_event;
|
|
}
|
|
alias NCB* PNCB;
|
|
|
|
struct SESSION_BUFFER {
|
|
UCHAR lsn;
|
|
UCHAR state;
|
|
UCHAR[NCBNAMSZ] local_name;
|
|
UCHAR[NCBNAMSZ] remote_name;
|
|
UCHAR rcvs_outstanding;
|
|
UCHAR sends_outstanding;
|
|
}
|
|
alias SESSION_BUFFER* PSESSION_BUFFER;
|
|
|
|
struct SESSION_HEADER {
|
|
UCHAR sess_name;
|
|
UCHAR num_sess;
|
|
UCHAR rcv_dg_outstanding;
|
|
UCHAR rcv_any_outstanding;
|
|
}
|
|
alias SESSION_HEADER* PSESSION_HEADER;
|
|
|
|
extern (Windows) UCHAR Netbios(PNCB);
|