//---------------------------------------------------------------------------- // // Microsoft Active Directory 1.0 Sample Code // // Copyright (C) Microsoft Corporation, 1996 // // File: main.hxx // // Contents: Main include file for adscmd // // //---------------------------------------------------------------------------- // // ********* System Includes // #define UNICODE #define _UNICODE #define INC_OLE2 #include // // ********* CRunTime Includes // #include #include #include #include // // ********* Public ADs includes // #include // // ********* Useful macros // #define BAIL_ON_NULL(p) \ if (!(p)) { \ goto error; \ } #define BAIL_ON_FAILURE(hr) \ if (FAILED(hr)) { \ goto error; \ } #define FREE_INTERFACE(pInterface) \ if (pInterface) { \ pInterface->Release(); \ pInterface=NULL; \ } #define FREE_BSTR(bstr) \ if (bstr) { \ SysFreeString(bstr); \ bstr = NULL; \ } // // ********* Prototypes // void PrintUsage( void ); int AnsiToUnicodeString( LPSTR pAnsi, LPWSTR pUnicode, DWORD StringLength ); int UnicodeToAnsiString( LPWSTR pUnicode, LPSTR pAnsi, DWORD StringLength ); LPWSTR AllocateUnicodeString( LPSTR pAnsiString ); void FreeUnicodeString( LPWSTR pUnicodeString ); HRESULT PrintVariantArray( VARIANT var ); HRESULT PrintVariant( VARIANT varPropData ); HRESULT PrintProperty( BSTR bstrPropName, HRESULT hRetVal, VARIANT varPropData ); HRESULT GetPropertyList( IADs * pADs, VARIANT ** ppVariant, PDWORD pcElementFetched ); // // Functions to dump contents of an object // int DoDump( char *AnsiADsPath ) ; HRESULT DumpObject( IADs * pADs ); // // Functions to list objects within a container. // int DoList( char *AnsiADsPath ) ; HRESULT EnumObject( LPWSTR pszADsPath, LPWSTR * lppClassNames, DWORD dwClassNames ) ;