This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/lmjoin.h

162 lines
3.7 KiB
C

/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
netsetup.h
Abstract:
Definitions and prototypes for the Net setup apis, for joining/unjoinging
domains and promoting/demoting servers
Environment:
User Mode - Win32
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
Requires ANSI C extensions: slash-slash comments, long external names.
Notes:
--*/
#ifndef __LMJOIN_H__
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define __LMJOIN_H__
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" {
#endif
//
// Types of name that can be validated
//
typedef enum _NETSETUP_NAME_TYPE {
NetSetupUnknown = 0,
NetSetupMachine,
NetSetupWorkgroup,
NetSetupDomain,
NetSetupNonExistentDomain,
#if(_WIN32_WINNT >= 0x0500)
NetSetupDnsMachine
#endif
} NETSETUP_NAME_TYPE, *PNETSETUP_NAME_TYPE;
//
// Status of a workstation
//
typedef enum _NETSETUP_JOIN_STATUS {
NetSetupUnknownStatus = 0,
NetSetupUnjoined,
NetSetupWorkgroupName,
NetSetupDomainName
} NETSETUP_JOIN_STATUS, *PNETSETUP_JOIN_STATUS;
//
// Flags to determine the behavior of the join/unjoin APIs
//
#define NETSETUP_JOIN_DOMAIN 0x00000001 // If not present, workgroup is joined
#define NETSETUP_ACCT_CREATE 0x00000002 // Do the server side account creation/rename
#define NETSETUP_ACCT_DELETE 0x00000004 // Delete the account when a domain is left
#define NETSETUP_WIN9X_UPGRADE 0x00000010 // Invoked during upgrade of Windows 9x to
// Windows NT
#define NETSETUP_DOMAIN_JOIN_IF_JOINED 0x00000020 // Allow the client to join a new domain
// even if it is already joined to a domain
#define NETSETUP_JOIN_UNSECURE 0x00000040 // Performs an unsecure join
#define NETSETUP_INSTALL_INVOCATION 0x00040000 // The APIs were invoked during install
//
// 0x80000000 is reserved for internal use only
//
//
// Joins a machine to the domain.
//
NET_API_STATUS
NET_API_FUNCTION
NetJoinDomain(
IN LPCWSTR lpServer OPTIONAL,
IN LPCWSTR lpDomain,
IN LPCWSTR lpAccountOU, OPTIONAL
IN LPCWSTR lpAccount OPTIONAL,
IN LPCWSTR lpPassword OPTIONAL,
IN DWORD fJoinOptions
);
NET_API_STATUS
NET_API_FUNCTION
NetUnjoinDomain(
IN LPCWSTR lpServer OPTIONAL,
IN LPCWSTR lpAccount OPTIONAL,
IN LPCWSTR lpPassword OPTIONAL,
IN DWORD fUnjoinOptions
);
NET_API_STATUS
NET_API_FUNCTION
NetRenameMachineInDomain(
IN LPCWSTR lpServer OPTIONAL,
IN LPCWSTR lpNewMachineName OPTIONAL,
IN LPCWSTR lpAccount OPTIONAL,
IN LPCWSTR lpPassword OPTIONAL,
IN DWORD fRenameOptions
);
//
// Determine the validity of a name
//
NET_API_STATUS
NET_API_FUNCTION
NetValidateName(
IN LPCWSTR lpServer OPTIONAL,
IN LPCWSTR lpName,
IN LPCWSTR lpAccount OPTIONAL,
IN LPCWSTR lpPassword OPTIONAL,
IN NETSETUP_NAME_TYPE NameType
);
//
// Determines whether a workstation is joined to a domain or not
//
NET_API_STATUS
NET_API_FUNCTION
NetGetJoinInformation(
IN LPCWSTR lpServer OPTIONAL,
OUT LPWSTR *lpNameBuffer,
OUT PNETSETUP_JOIN_STATUS BufferType
);
//
// Determines the list of OUs that the client can create a machine account in
//
NET_API_STATUS
NET_API_FUNCTION
NetGetJoinableOUs(
IN LPCWSTR lpServer OPTIONAL,
IN LPCWSTR lpDomain,
IN LPCWSTR lpAccount OPTIONAL,
IN LPCWSTR lpPassword OPTIONAL,
OUT DWORD *OUCount,
OUT LPWSTR **OUs
);
#ifdef __cplusplus
}
#endif
#pragma option pop /*P_O_Pop*/
#endif // __LMJOIN_H__