//+------------------------------------------------------------------------ // // Class: Common // // Purpose: Contains Winnt routines and properties that are common to // all Winnt objects. Winnt objects get the routines and // properties through C++ inheritance. // //------------------------------------------------------------------------- #define MAX_DWORD 0xFFFFFFFF #define SCHEMA_NAME L"Schema" HRESULT MakeUncName( LPWSTR szSrcBuffer, LPWSTR szTargBuffer ); HRESULT ValidateOutParameter( BSTR * retval ); HRESULT BuildADsPath( LPWSTR Parent, LPWSTR Name, LPWSTR *pADsPath ); HRESULT BuildSchemaPath( LPWSTR Parent, LPWSTR Name, LPWSTR Schema, LPWSTR *pSchemaPath ); HRESULT BuildADsGuid( REFCLSID clsid, BSTR *pADsClass ); // // (remote or local) machine's product type // typedef DWORD PRODUCTTYPE; #define PRODTYPE_INVALID 0 #define PRODTYPE_WKSTA 1 // workstation #define PRODTYPE_STDALONESVR 2 // standalone server #define PRODTYPE_DC 3 // domain controller (primary or backup) HRESULT GetMachineProductType( IN LPTSTR pszServer, OUT PRODUCTTYPE *pdwProductType ); // // Accessing Well-known object types // typedef struct _filters { WCHAR szObjectName[MAX_PATH]; DWORD dwFilterId; } FILTERS, *PFILTERS; extern PFILTERS gpFilters; extern DWORD gdwMaxFilters; HRESULT GetObjectType( PFILTERS pFilters, DWORD dwMaxFilters, LPWSTR ClassName, PDWORD pdwObjectType ); HRESULT BuildObjectInfo( LPWSTR ADsParent, LPWSTR Name, POBJECTINFO * ppObjectInfo ); HRESULT BuildObjectInfo( LPWSTR ADsPath, POBJECTINFO * ppObjectInfo ); HRESULT MakeWinNTDomainAndName( POBJECTINFO pObjectInfo, LPWSTR szDomName ); HRESULT MakeWinNTAccountName( POBJECTINFO pObjectInfo, LPWSTR szDomName, BOOL fConnectToReg ); VOID FreeObjectInfo( POBJECTINFO pObjectInfo, BOOL fStatic = FALSE ); HRESULT CopyObjectInfo( POBJECTINFO pObjectInfo, POBJECTINFO *pTargObjectInfo ); HRESULT ValidateObject( DWORD dwObjectType, POBJECTINFO pObjectInfo, CWinNTCredentials& Credentials ); HRESULT ValidateProvider( POBJECTINFO pObjectInfo ); HRESULT GetDomainFromPath( LPTSTR ADsPath, LPTSTR szDomainName ); HRESULT GetServerFromPath( LPTSTR ADsPath, LPTSTR szDomainName ); HRESULT GetPrinterNameFromInfo( LPTSTR szInfoName, LPTSTR szPrinterName ); BOOL WinNTEnumPrinters( DWORD dwType, LPTSTR lpszName, DWORD dwLevel, LPBYTE *lplpbPrinters, LPDWORD lpdwReturned ); BOOL WinNTGetPrinter( HANDLE hPrinter, DWORD dwLevel, LPBYTE *lplpbPrinters ); DWORD TickCountDiff( DWORD dwTime1, DWORD dwTime2 ); HRESULT BuildComputerFromObjectInfo(POBJECTINFO pObjectInfo, LPTSTR pszADsPath ); HRESULT DelimitedStringToVariant( LPTSTR pszString, VARIANT *pvar, TCHAR Delimiter ); HRESULT FPNWSERVERADDRtoString( FPNWSERVERADDR WkstaAddress, LPWSTR * pszString ); PKEYDATA CreateTokenList( LPWSTR pKeyData ); DWORD DelimitedStrSize( LPWSTR pszString, WCHAR Delimiter ); DWORD NulledStrSize( LPWSTR pszString ); HRESULT GetSidIntoCache( LPTSTR lpszServerName, LPTSTR lpszHostName, CPropertyCache * pPropertyCache, BOOL fExplicit );