Directory Services

Setting Up Visual C++ 6.0 for ADSI Development

Setting Up the Microsoft Visual C++ 6.0 Development Environment

Microsoft® Visual C++ 6.0 can be used to develop enterprise applications. To set up your Visual C++ 6.0 environment to develop an ADSI application, perform the following steps:

  1. Point to the include and library directory. Select Tools | Options. Click the Directory tab, and specify the path to the ADSI header files.
  2. Include the Activeds.h file in your project.
  3. Add the Activeds.lib and Adsiid.lib files to the linker input for your project.
  4. Begin programming with ADSI.

A Sample Visual C++ Application: Creating a User in a Domain

Log on to a Windows 2000 or Windows Server 2003 domain. You must also have permission to modify data in Active Directory. By default, the Administrator has this privilege. To enter this code example:

  1. Start Microsoft Visual C++ 6.0.
  2. Create a standalone executable project. It can be either an MFC, ATL, or Console Application.
  3. Follow the previous steps to set up your project.
  4. Enter the following code example. Replace the "LDAP://CN=users,DC=fabrikam,DC=com" string with the ADsPath of a container in your domain. You should also replace the user name "jeffsmith" with a user name that is unique in your domain.
    #include "stdafx.h"
    #include "activeds.h"
    
    int main(int argc, char* argv[])
    {
    	HRESULT hr;
    	IADsContainer *pCont;
    	IDispatch *pDisp=NULL;
    	IADs *pUser;
    
    	 // Initialize COM before calling any ADSI functions or interfaces.
    	 CoInitialize(NULL);
    
    	hr = ADsGetObject( L"LDAP://CN=users,DC=fabrikam,DC=com", 
    							 IID_IADsContainer, 
    							 (void**) &pCont );
    
    	if ( !SUCCEEDED(hr) )
    	{
    		return 0;
    }
    
    	//-----------------
    	// Create a user
    	//-----------------
    
    	hr = pCont->Create(CComBSTR("user"), CComBSTR("jeffsmith"), &pDisp );
    
    	// Release the container object.
    	pCont->Release();
    
    	if ( !SUCCEEDED(hr) )
    	{
    		return 0;
    }
    
    	hr = pDisp->QueryInterface( IID_IADs, (void**) &pUser );
    
    	// Release the dispatch interface.
    	pDisp->Release();
    
    	if ( !SUCCEEDED(hr) )
    	{ 
    		return 0;
    }
    
    	// Commit the object data to the directory.
    	pUser->SetInfo();
    
    	// Release the object.
    	pUser->Release();
    
    	CoUninitialize();
    }
    
  5. Build and run the application. To verify that the user has been created, use the Active Directory Users and Computers management tool.