187 lines
6.7 KiB
C++
187 lines
6.7 KiB
C++
//---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1995
|
|
//
|
|
// File: globals.cxx
|
|
//
|
|
// Contents:
|
|
//
|
|
// History:
|
|
//----------------------------------------------------------------------------
|
|
#include "nds.hxx"
|
|
#pragma hdrstop
|
|
|
|
WCHAR *szProviderName = L"NDS";
|
|
CRITICAL_SECTION g_ContextCritSect;
|
|
CRITICAL_SECTION BindCacheCritSect;
|
|
|
|
KWDLIST KeywordList[MAX_KEYWORDS] =
|
|
{
|
|
{ TOKEN_DOMAIN, L"domain"},
|
|
{ TOKEN_USER, L"user"},
|
|
{ TOKEN_GROUP, L"group"},
|
|
{ TOKEN_COMPUTER, L"computer"},
|
|
{ TOKEN_PRINTER, L"printqueue"},
|
|
{ TOKEN_SERVICE, L"service"},
|
|
{ TOKEN_FILESERVICE, L"fileservice"},
|
|
{ TOKEN_SCHEMA, L"schema"},
|
|
{ TOKEN_CLASS, L"class"},
|
|
{ TOKEN_FUNCTIONALSET, L"functionalset"},
|
|
{ TOKEN_FUNCTIONALSETALIAS, L"functionalsetalias"},
|
|
{ TOKEN_PROPERTY, L"property"},
|
|
{ TOKEN_SYNTAX, L"syntax"},
|
|
{ TOKEN_FILESHARE, L"fileshare"}
|
|
};
|
|
|
|
CClassCache * pgClassCache;
|
|
|
|
SYNTAXMAP g_aNDSSyntaxMap[] =
|
|
|
|
{
|
|
/* 0 */
|
|
{ TEXT("Unmappable"), TEXT("Unknown"), VT_UNKNOWN},
|
|
|
|
/* 1 */
|
|
{ TEXT("String"), TEXT("NDS Distinguished Name"), VT_BSTR},
|
|
|
|
/* 2 */
|
|
{ TEXT("String"), TEXT("NDS Case Exact String"), VT_BSTR},
|
|
|
|
/* 3 */
|
|
{ TEXT("String"), TEXT("NDS Case Ignore String"), VT_BSTR},
|
|
|
|
/* 4 */
|
|
{ TEXT("String"), TEXT("NDS Printable String"), VT_BSTR},
|
|
|
|
/* 5 */
|
|
{ TEXT("String"), TEXT("NDS Numeric String"), VT_BSTR},
|
|
|
|
/* 6 */
|
|
{ TEXT("Case Ignore List"), TEXT("NDS Case Ignore List"), VT_VARIANT},
|
|
|
|
/* 7 */
|
|
{ TEXT("Boolean"), TEXT("NDS Boolean"), VT_BOOL},
|
|
|
|
/* 8 */
|
|
{ TEXT("Integer"), TEXT("NDS Integer"), VT_I4},
|
|
|
|
/* 9 */
|
|
{ TEXT("Octet"), TEXT("NDS Octet String"), VT_VARIANT},
|
|
|
|
/* 10 */
|
|
{ TEXT("String"), TEXT("NDS Telephone Number"), VT_BSTR},
|
|
|
|
/* 11 */
|
|
{ TEXT("FaxNumber"), TEXT("NDS Facsimile Number"), VT_DISPATCH},
|
|
|
|
/* 12 */
|
|
{ TEXT("NetAddress"), TEXT("NDS Network Address"), VT_DISPATCH},
|
|
|
|
/* 13 */
|
|
{ TEXT("Octet List"), TEXT("NDS Octet List"), VT_VARIANT},
|
|
|
|
/* 14 */
|
|
{ TEXT("Email"), TEXT("NDS Email Address"), VT_DISPATCH},
|
|
|
|
/* 15 */
|
|
{ TEXT("Path"), TEXT("NDS Path"), VT_DISPATCH},
|
|
|
|
/* 16 */
|
|
{ TEXT("Replica Pointer"), TEXT("Replica Pointer"), VT_DISPATCH},
|
|
|
|
/* 17 */
|
|
{ TEXT("ACL"), TEXT("NDS Object ACL"), VT_DISPATCH},
|
|
|
|
/* 18 */
|
|
{ TEXT("Postal Address"), TEXT("NDS Postal Address"), VT_DISPATCH},
|
|
|
|
/* 19 */
|
|
{ TEXT("Timestamp"), TEXT("NDS Timestamp"), VT_DISPATCH},
|
|
|
|
/* 20 */
|
|
{ TEXT("Object Class"), TEXT("NDS Class Name"), VT_BSTR},
|
|
|
|
/* 21 */
|
|
{ TEXT("Octet"), TEXT("NDS Stream"), VT_VARIANT},
|
|
|
|
/* 22 */
|
|
{ TEXT("Integer"), TEXT("NDS Counter"), VT_I4},
|
|
|
|
/* 23 */
|
|
{ TEXT("Back Link"), TEXT("NDS Back Link"), VT_DISPATCH},
|
|
|
|
/* 24 */
|
|
{ TEXT("Time"), TEXT("NDS Time"), VT_DATE},
|
|
|
|
/* 25 */
|
|
{ TEXT("Typed Name"), TEXT("NDS Typed Name"), VT_DISPATCH},
|
|
|
|
/* 26 */
|
|
{ TEXT("Hold"), TEXT("NDS Hold"), VT_DISPATCH},
|
|
|
|
/* 27 */
|
|
{ TEXT("Integer"), TEXT("NDS Interval"), VT_I4}
|
|
};
|
|
|
|
DWORD g_cNDSSyntaxMap = (sizeof(g_aNDSSyntaxMap)/sizeof(g_aNDSSyntaxMap[0]));
|
|
|
|
SYNTAXINFO g_aNDSSyntax[] =
|
|
{
|
|
{ TEXT("String"), VT_BSTR},
|
|
{ TEXT("Case Ignore List"), VT_VARIANT},
|
|
{ TEXT("Boolean"), VT_BOOL},
|
|
{ TEXT("Octet"), VT_VARIANT},
|
|
{ TEXT("FaxNumber"),VT_DISPATCH},
|
|
{ TEXT("NetAddress"), VT_DISPATCH},
|
|
{ TEXT("Octet List"), VT_VARIANT},
|
|
{ TEXT("Email"), VT_DISPATCH},
|
|
{ TEXT("Path"), VT_DISPATCH},
|
|
{ TEXT("Replica Pointer"), VT_DISPATCH},
|
|
{ TEXT("ACL"), VT_DISPATCH},
|
|
{ TEXT("Postal Address"), VT_DISPATCH},
|
|
{ TEXT("Timestamp"), VT_DISPATCH},
|
|
{ TEXT("Object Class"), VT_BSTR},
|
|
{ TEXT("Back Link"), VT_DISPATCH},
|
|
{ TEXT("Time"), VT_DATE},
|
|
{ TEXT("Typed Name"), VT_DISPATCH},
|
|
{ TEXT("Hold"), VT_DISPATCH},
|
|
{ TEXT("Integer"), VT_I4}
|
|
};
|
|
|
|
DWORD g_cNDSSyntax = (sizeof(g_aNDSSyntax)/sizeof(g_aNDSSyntax[0]));
|
|
|
|
ADSTYPE g_MapNdsTypeToADsType[] = {
|
|
ADSTYPE_INVALID, /* Unknown */
|
|
ADSTYPE_DN_STRING, /* Distinguished Name */
|
|
ADSTYPE_CASE_EXACT_STRING, /* Case Exact String */
|
|
ADSTYPE_CASE_IGNORE_STRING, /* Case Ignore String */
|
|
ADSTYPE_PRINTABLE_STRING, /* Printable String */
|
|
ADSTYPE_NUMERIC_STRING, /* Numeric String */
|
|
ADSTYPE_CASEIGNORE_LIST, /* Case Ignore List */
|
|
ADSTYPE_BOOLEAN, /* Boolean */
|
|
ADSTYPE_INTEGER, /* Integer */
|
|
ADSTYPE_OCTET_STRING, /* Octet String */
|
|
ADSTYPE_CASE_IGNORE_STRING, /* Telephone Number */
|
|
ADSTYPE_FAXNUMBER, /* Facsimile Telephone Number */
|
|
ADSTYPE_NETADDRESS, /* Net Address */
|
|
ADSTYPE_OCTET_LIST, /* Octet List */
|
|
ADSTYPE_EMAIL, /* EMail Address */
|
|
ADSTYPE_PATH, /* Path */
|
|
ADSTYPE_REPLICAPOINTER, /* Replica Pointer */
|
|
ADSTYPE_PROV_SPECIFIC, /* Object ACL */
|
|
ADSTYPE_POSTALADDRESS, /* Postal Address */
|
|
ADSTYPE_TIMESTAMP, /* Timestamp */
|
|
ADSTYPE_OBJECT_CLASS, /* Class Name */
|
|
ADSTYPE_OCTET_STRING, /* Stream */
|
|
ADSTYPE_INTEGER, /* Counter */
|
|
ADSTYPE_BACKLINK, /* Back Link */
|
|
ADSTYPE_UTC_TIME, /* Time */
|
|
ADSTYPE_TYPEDNAME, /* Typed Name */
|
|
ADSTYPE_HOLD, /* Hold */
|
|
ADSTYPE_INTEGER /* Interval */
|
|
};
|
|
|
|
|
|
DWORD g_cMapNdsTypeToADsType = (sizeof(g_MapNdsTypeToADsType)/sizeof(g_MapNdsTypeToADsType[0]));
|