|
|
/***
Copyright (c) 1995 Microsoft Corporation
Module Name:
NewName.c
Abstract:
Command line test tool for renaming an object in a NDS tree.
Author:
Glenn Curtis [glennc] 25-Jan-96
***/
#include <ndsapi32.h>
#include <nds32.h>
int _cdecl main( int argc, char **argv ) { DWORD status = NO_ERROR; LPBYTE lpTemp = NULL; DWORD dwValue; DWORD i;
HANDLE hParentObject; HANDLE hOperationData = NULL;
OEM_STRING OemArg; UNICODE_STRING ParentObjectName; UNICODE_STRING OldObjectName; UNICODE_STRING NewObjectName; WCHAR szParentObjectName[256]; WCHAR szOldObjectName[256]; WCHAR szNewObjectName[256];
ParentObjectName.Length = 0; ParentObjectName.MaximumLength = sizeof( szParentObjectName ); ParentObjectName.Buffer = szParentObjectName;
OldObjectName.Length = 0; OldObjectName.MaximumLength = sizeof( szOldObjectName ); OldObjectName.Buffer = szOldObjectName;
NewObjectName.Length = 0; NewObjectName.MaximumLength = sizeof( szNewObjectName ); NewObjectName.Buffer = szNewObjectName;
//
// Check the arguments.
//
if ( argc != 4 ) { printf( "\nUsage: newname <parent object DN> <object name> <new object name>\n" ); printf( "\n where:\n" ); printf( " parent object DN = \\\\tree\\aaa.bbb\n" ); printf( " object name = foo\n" ); printf( " new object name = bar\n" ); printf( "\nFor Example: newname \\\\MARSDEV\\OU=DEV.O=MARS glennc glenn_curtis\n\n" );
return -1; }
OemArg.Length = strlen( argv[1] ); OemArg.MaximumLength = OemArg.Length; OemArg.Buffer = argv[1];
RtlOemStringToUnicodeString( &ParentObjectName, &OemArg, FALSE );
OemArg.Length = strlen( argv[2] ); OemArg.MaximumLength = OemArg.Length; OemArg.Buffer = argv[2];
RtlOemStringToUnicodeString( &OldObjectName, &OemArg, FALSE );
OemArg.Length = strlen( argv[3] ); OemArg.MaximumLength = OemArg.Length; OemArg.Buffer = argv[3];
RtlOemStringToUnicodeString( &NewObjectName, &OemArg, FALSE );
status = NwNdsOpenObject( ParentObjectName.Buffer, NULL, NULL, &hParentObject, NULL, NULL, NULL, NULL, NULL );
if ( status ) { printf( "\nError: NwNdsOpenObject returned status 0x%.8X\n\n", status ); printf( "\nError: GetLastError returned: 0x%.8X\n\n", GetLastError() );
return -1; }
status = NwNdsRenameObject( hParentObject, OldObjectName.Buffer, NewObjectName.Buffer, TRUE );
if ( status != NO_ERROR ) { printf( "\nError: NwNdsRenameObject returned status 0x%.8X\n\n", status ); printf( "\nError: GetLastError returned: 0x%.8X\n\n", GetLastError() ); } else { printf( "\nNwNdsRenameObject succeeded!\n\n" ); }
status = NwNdsCloseObject( hParentObject );
if ( status ) { printf( "\nError: NwNdsCloseObject returned status 0x%.8X\n\n", status ); printf( "\nError: GetLastError returned: 0x%.8X\n\n", GetLastError() ); }
return status; }
|