/* header auto-generated by pidl */

#include <stdint.h>

#define LIBNETAPI_LOCAL_SERVER(x) (!x || is_myname_or_ipaddr(x))
#ifndef _HEADER_libnetapi
#define _HEADER_libnetapi

#define ERROR_MORE_DATA	( 234L )
enum NET_API_STATUS
#ifndef USE_UINT_ENUMS
 {
	NERR_Success=0
}
#else
 { __donnot_use_enum_NET_API_STATUS=0x7FFFFFFF}
#define NERR_Success ( 0 )
#endif
;

struct SERVER_INFO_1005 {
	const char * sv1005_comment;
};

struct DOMAIN_CONTROLLER_INFO {
	const char * domain_controller_name;
	const char * domain_controller_address;
	uint32_t domain_controller_address_type;
	struct GUID domain_guid;
	const char * domain_name;
	const char * dns_forest_name;
	uint32_t flags;
	const char * dc_site_name;
	const char * client_site_name;
};

struct USER_INFO_0 {
	const char * usri0_name;
};

struct USER_INFO_1 {
	const char * usri1_name;
	const char * usri1_password;
	uint32_t usri1_password_age;
	uint32_t usri1_priv;
	const char * usri1_home_dir;
	const char * usri1_comment;
	uint32_t usri1_flags;
	const char * usri1_script_path;
};

struct NET_DISPLAY_USER {
	const char * usri1_name;
	const char * usri1_comment;
	uint32_t usri1_flags;
	const char * usri1_full_name;
	uint32_t usri1_user_id;
	uint32_t usri1_next_index;
};

struct NET_DISPLAY_MACHINE {
	const char * usri2_name;
	const char * usri2_comment;
	uint32_t usri2_flags;
	uint32_t usri2_user_id;
	uint32_t usri2_next_index;
};

struct NET_DISPLAY_GROUP {
	const char * grpi3_name;
	const char * grpi3_comment;
	uint32_t grpi3_group_id;
	uint32_t grpi3_attributes;
	uint32_t grpi3_next_index;
};


struct NetJoinDomain {
	struct {
		const char * server;/* [unique] */
		const char * domain;/* [ref] */
		const char * account_ou;/* [unique] */
		const char * account;/* [unique] */
		const char * password;/* [unique] */
		uint32_t join_flags;
	} in;

	struct {
		enum NET_API_STATUS result;
	} out;

};


struct NetUnjoinDomain {
	struct {
		const char * server_name;/* [unique] */
		const char * account;/* [unique] */
		const char * password;/* [unique] */
		uint32_t unjoin_flags;
	} in;

	struct {
		enum NET_API_STATUS result;
	} out;

};


struct NetGetJoinInformation {
	struct {
		const char * server_name;/* [unique] */
	} in;

	struct {
		const char * *name_buffer;/* [ref] */
		uint16_t *name_type;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetGetJoinableOUs {
	struct {
		const char * server_name;/* [unique] */
		const char * domain;/* [ref] */
		const char * account;/* [unique] */
		const char * password;/* [unique] */
	} in;

	struct {
		uint32_t *ou_count;/* [ref] */
		const char * **ous;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetServerGetInfo {
	struct {
		const char * server_name;/* [unique] */
		uint32_t level;
	} in;

	struct {
		uint8_t **buffer;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetServerSetInfo {
	struct {
		const char * server_name;/* [unique] */
		uint32_t level;
		uint8_t *buffer;/* [ref] */
	} in;

	struct {
		uint32_t *parm_error;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetGetDCName {
	struct {
		const char * server_name;/* [unique] */
		const char * domain_name;/* [unique] */
	} in;

	struct {
		uint8_t **buffer;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetGetAnyDCName {
	struct {
		const char * server_name;/* [unique] */
		const char * domain_name;/* [unique] */
	} in;

	struct {
		uint8_t **buffer;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct DsGetDcName {
	struct {
		const char * server_name;/* [unique] */
		const char * domain_name;/* [ref] */
		struct GUID *domain_guid;/* [unique] */
		const char * site_name;/* [unique] */
		uint32_t flags;
	} in;

	struct {
		struct DOMAIN_CONTROLLER_INFO **dc_info;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetUserAdd {
	struct {
		const char * server_name;/* [unique] */
		uint32_t level;
		uint8_t *buffer;/* [ref] */
	} in;

	struct {
		uint32_t *parm_error;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetUserDel {
	struct {
		const char * server_name;/* [unique] */
		const char * user_name;/* [ref] */
	} in;

	struct {
		enum NET_API_STATUS result;
	} out;

};


struct NetUserEnum {
	struct {
		const char * server_name;/* [unique] */
		uint32_t level;
		uint32_t filter;
		uint32_t prefmaxlen;
		uint32_t *resume_handle;/* [ref] */
	} in;

	struct {
		uint8_t **buffer;/* [ref] */
		uint32_t *entries_read;/* [ref] */
		uint32_t *total_entries;/* [ref] */
		uint32_t *resume_handle;/* [ref] */
		enum NET_API_STATUS result;
	} out;

};


struct NetQueryDisplayInformation {
	struct {
		const char * server_name;/* [unique] */
		uint32_t level;
		uint32_t idx;
		uint32_t entries_requested;
		uint32_t prefmaxlen;
	} in;

	struct {
		uint32_t *entries_read;/* [ref] */
		void **buffer;/* [noprint,ref] */
		enum NET_API_STATUS result;
	} out;

};

#endif /* _HEADER_libnetapi */
