//--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 1995 // // File: globals.hxx // // Contents: // // History: //---------------------------------------------------------------------------- extern TCHAR *szProviderName; extern TCHAR *szLDAPNamespaceName; extern TCHAR *szGCNamespaceName; // // List of interface properties for Generic Objects // extern INTF_PROP_DATA IntfPropsGeneric[]; extern INTF_PROP_DATA IntfPropsSchema[]; extern INTF_PROP_DATA IntfPropsConnection[]; extern INTF_PROP_DATA IntfPropsCursor[]; extern INTF_PROP_DATA IntfPropsQuery[]; // // Helper routine to split relative url to class and RDN. // HRESULT UrlToClassAndDn( IN IUmiURL *pUrl, OUT LPWSTR *ppszDN, OUT LPWSTR *ppszClass ); // // Helper routine to conver the url to the ldap path. // HRESULT UrlToLDAPPath( IN IUmiURL *pURL, OUT LPWSTR *ppszLDAPPath, OPTIONAL OUT LPWSTR *ppszDn = NULL, OPTIONAL OUT LPWSTR *ppszServer = NULL ); // // Helper routine to convert ADsPath to url text in umi format. // HRESULT ADsPathToUmiURL( IN LPWSTR ADsPath, OUT LPWSTR *ppszUrlTxt ); // // Converts the given hr to the umi hr. // HRESULT MapHrToUmiError( IN HRESULT hr ); // // These routine are exported by the router (activeds.dll) and convert // binary format security descriptors to IADsSecurityDescriptor and // IADsSecurityDescriptor to binary format. // #ifdef __cplusplus extern "C" #else extern #endif HRESULT ConvertSecDescriptorToVariant( LPWSTR pszServerName, CCredentials& Credentials, PSECURITY_DESCRIPTOR pSecurityDescriptor, VARIANT * pVarSec, BOOL fNTDS ); #ifdef __cplusplus extern "C" #else extern #endif HRESULT ConvertSecurityDescriptorToSecDes( LPWSTR pszServerName, CCredentials& Credentials, IADsSecurityDescriptor FAR * pSecDes, PSECURITY_DESCRIPTOR * ppSecurityDescriptor, PDWORD pdwSDLength, BOOL fNTDSType ); // // The remaining definitions are support routines to enable // dynamic loading of libraries. // extern CRITICAL_SECTION g_csLoadLibsCritSect; #define ENTER_LOADLIBS_CRITSECT() EnterCriticalSection(&g_csLoadLibsCritSect) #define LEAVE_LOADLIBS_CRITSECT() LeaveCriticalSection(&g_csLoadLibsCritSect) extern HANDLE g_hDllSecur32; extern HANDLE g_hDllNtdsapi; #define DSUNQUOTERDN_API "DsUnquoteRdnValueW" #define DSCRACK_NAMES_API "DsCrackNamesW" #define DSBIND_API "DsBindW" #define DSUNBIND_API "DsUnBindW" #define DSMAKEPASSWD_CRED_API "DsMakePasswordCredentialsW" #define DSFREEPASSWD_CRED_API "DsFreePasswordCredentials" #define DSBINDWITHCRED_API "DsBindWithCredW" #define DSFREENAME_RESULT_API "DsFreeNameResultW" #define QUERYCONTEXT_ATTR_API "QueryContextAttributesW" // // DsUnquoteRdnValue definition // typedef DWORD (*PF_DsUnquoteRdnValueW) ( IN DWORD cQuotedRdnValueLength, IN LPCWSTR psQuotedRdnValue, IN OUT DWORD *pcUnquotedRdnValueLength, OUT LPWSTR psUnquotedRdnValue ); DWORD DsUnquoteRdnValueWrapper( IN DWORD cQuotedRdnValueLength, IN LPCWSTR psQuotedRdnValue, IN OUT DWORD *pcUnquotedRdnValueLength, OUT LPTCH psUnquotedRdnValue ); // // DsMakePasswordCredentialsW // typedef DWORD (*PF_DsMakePasswordCredentialsW) ( LPCWSTR User, LPCWSTR Domain, LPCWSTR Password, RPC_AUTH_IDENTITY_HANDLE *pAuthIdentity ); DWORD DsMakePasswordCredentialsWrapper( LPCWSTR User, LPCWSTR Domain, LPCWSTR Password, RPC_AUTH_IDENTITY_HANDLE *pAuthIdentity ); // // DsFreePasswordCredentials definition // typedef DWORD (*PF_DsFreePasswordCredentials) ( RPC_AUTH_IDENTITY_HANDLE AuthIdentity ); DWORD DsFreePasswordCredentialsWrapper( RPC_AUTH_IDENTITY_HANDLE AuthIdentity ); // // DsBindW // typedef DWORD (*PF_DsBindW) ( LPCWSTR DomainControllerName, LPCWSTR DnsDomainName, HANDLE *phDS ); DWORD DsBindWrapper( LPCWSTR DomainControllerName, LPCWSTR DnsDomainName, HANDLE *phDS ); // // DsUnbindW // typedef DWORD (*PF_DsUnbindW) ( HANDLE *phDS ); DWORD DsUnBindWrapper( HANDLE *phDS ); // // DsCrackNamesW // typedef DWORD(*PF_DsCrackNamesW) ( HANDLE hDS, DS_NAME_FLAGS flags, DS_NAME_FORMAT formatOffered, DS_NAME_FORMAT formatDesired, DWORD cNames, const LPCWSTR *rpNames, PDS_NAME_RESULTW *ppResult ); DWORD DsCrackNamesWrapper( HANDLE hDS, DS_NAME_FLAGS flags, DS_NAME_FORMAT formatOffered, DS_NAME_FORMAT formatDesired, DWORD cNames, const LPCWSTR *rpNames, PDS_NAME_RESULTW *ppResult ); // // DsBindWithCredW. // typedef DWORD (*PF_DsBindWithCredW) ( LPCWSTR DomainControllerName, LPCWSTR DnsDomainName, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, HANDLE *phDS ); DWORD DsBindWithCredWrapper( LPCWSTR DomainControllerName, LPCWSTR DnsDomainName, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, HANDLE *phDS ); // // DsFreeNameResultW // typedef DWORD (*PF_DsFreeNameResultW) ( DS_NAME_RESULTW *pResult ); DWORD DsFreeNameResultWrapper( DS_NAME_RESULTW *pResult ); // // QueryContextAttributes // typedef DWORD (*PF_QueryContextAttributes) ( PCtxtHandle phContext, unsigned long ulAttribute, void SEC_FAR * pBuffer ); DWORD QueryContextAttributesWrapper( PCtxtHandle phContext, unsigned long ulAttribute, void SEC_FAR * pBuffer );