windows-nt/Source/XPSP1/NT/ds/adsi/winnt/getobj.hxx
2020-09-26 16:20:57 +08:00

261 lines
6.2 KiB
C++

#define MAXCOMPONENTS 10
#define TOKEN_IDENTIFIER 1
#define TOKEN_COMMA 2
//
// This no longer exists
//#define TOKEN_BSLASH 3
//
#define TOKEN_END 4
#define TOKEN_DOMAIN 5
#define TOKEN_USER 6
#define TOKEN_GROUP 7
#define TOKEN_PRINTER 8
#define TOKEN_COMPUTER 9
#define TOKEN_SERVICE 10
#define TOKEN_ATSIGN 11
#define TOKEN_EXCLAMATION 12
#define TOKEN_COLON 13
#define TOKEN_FSLASH 14
#define TOKEN_PROVIDER 15
#define TOKEN_SCHEMA 16
#define TOKEN_CLASS 17
#define TOKEN_PROPERTY 18
#define TOKEN_SYNTAX 19
#define TOKEN_FILESHARE 20
#define TOKEN_FILESERVICE 21
#define TOKEN_NAMESPACE 22
#define TOKEN_LOCALGROUP 23
#define TOKEN_GLOBALGROUP 24
#define TOKEN_WORKGROUP 25
typedef struct _objectinfo {
LPWSTR ProviderName;
DWORD ObjectType;
DWORD NumComponents;
LPWSTR ComponentArray[MAXCOMPONENTS];
LPWSTR DisplayComponentArray[MAXCOMPONENTS];
} OBJECTINFO, *POBJECTINFO;
HRESULT
GetObject(LPWSTR szBuffer, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetNamespaceObject(POBJECTINFO pObjectInfo, LPVOID * ppObject);
HRESULT
GetDomainObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetWorkGroupObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetUserObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetComputerObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetServiceObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetPrinterObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetFileServiceObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetFileShareObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetGroupObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetLocalGroupObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetGlobalGroupObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetSchemaObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetClassObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetSyntaxObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
GetPropertyObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
HeuristicGetObject(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
// Additional Heuristic function to get the object on NOWKSTA services
HRESULT
HeuristicGetObjectNoWksta(POBJECTINFO pObjectInfo, LPVOID * ppObject, CWinNTCredentials& Credentials);
HRESULT
AddComponent(POBJECTINFO pObjectInfo, LPWSTR szToken, LPWSTR szDisplayToken);
HRESULT
AddProviderName(POBJECTINFO pObjectInfo, LPWSTR szToken);
HRESULT
SetType(POBJECTINFO pObjectInfo, DWORD dwToken);
HRESULT
ValidateNamespaceObject(
POBJECTINFO pObjectInfo
);
HRESULT
ValidateComputerObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& Credentials
);
HRESULT
ValidateUserObject(
POBJECTINFO pObjectInfo,
PDWORD pdwParentId,
CWinNTCredentials& Credentials
);
HRESULT
ValidateGroupObject(
POBJECTINFO pObjectInfo,
PULONG puGroupType,
PDWORD pdwParentId,
CWinNTCredentials& Credentials
);
HRESULT
BuildADsPath(POBJECTINFO pObjectInfo, LPWSTR szBuffer);
HRESULT
BuildParent(POBJECTINFO pObjectInfo, LPWSTR szBuffer);
HRESULT
BuildGrandParent(POBJECTINFO pObjectInfo, LPWSTR szBuffer);
HRESULT
ValidateComputerParent(
LPWSTR szDomainName,
LPWSTR szComputerName,
CWinNTCredentials& Credentials
);
// Overloaded function called when SAM Name is required
HRESULT
ValidateComputerParent(
LPWSTR szDomainName,
LPWSTR szComputerName,
LPWSTR szSAMName,
CWinNTCredentials& Credentials
);
HRESULT
ValidatePrinterObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& CCredentials
);
HRESULT
ValidatePrintDeviceObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& CCredentials
);
HRESULT
ValidateServiceObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& CCredentials
);
HRESULT
ValidateFileServiceObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& CCredentials
);
HRESULT
ValidateFileShareObject(
POBJECTINFO pObjectInfo,
CWinNTCredentials& CCredentials
);
HRESULT GetPrinterFromPath(
LPTSTR *pszPrinter,
LPWSTR szPathName
);
HRESULT
ValidateGlobalGroupObject(
LPWSTR szServerName,
LPWSTR *pszGroupName,
CWinNTCredentials& Credentials
);
HRESULT
ValidateLocalGroupObject(
LPWSTR szServerName,
LPWSTR *pszGroupName,
CWinNTCredentials& Credentials
);
HRESULT
GetComputerParent(
LPTSTR pszComputerName,
LPTSTR pszComputerParentName,
CWinNTCredentials& Credentials
);
HRESULT
ConstructFullObjectInfo(
POBJECTINFO pObjectInfo,
POBJECTINFO *ppFullObjectInfo,
CWinNTCredentials& Credentials
);
HRESULT
GetGroupObjectInComputer(
LPWSTR pszHostServerName, // pdc name
POBJECTINFO pObjectInfo,
CWinNTCredentials& Credentials,
LPVOID * ppObject);
HRESULT
GetUserObjectInComputer(
LPWSTR pszHostServerName, // pdc name
POBJECTINFO pObjectInfo,
CWinNTCredentials& Credentials,
LPVOID * ppObject
);
HRESULT
GetUserObjectInDomain(
LPWSTR pszHostServerName,
POBJECTINFO pObjectInfo,
CWinNTCredentials& Credentials,
LPVOID * ppObject
);
HRESULT
GetUserObjectInComputer(
LPWSTR pszHostServerName, // pdc name
POBJECTINFO pObjectInfo,
CWinNTCredentials& Credentials,
LPVOID * ppObject
);