IDirectoryObject::CreateDSObject 方法 (iads.h)
IDirectoryObject::CreateDSObject 方法创建当前目录服务对象的子级。
语法
HRESULT CreateDSObject(
[in] LPWSTR pszRDNName,
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] IDispatch **ppObject
);
参数
[in] pszRDNName
提供要创建的对象的相对可分辨名称 (相对路径) 。
[in] pAttributeEntries
一个ADS_ATTR_INFO结构的数组,这些结构包含创建对象时要设置的属性定义。
[in] dwNumAttributes
提供创建对象时设置的多个属性。
[out] ppObject
提供指向所创建对象上的 IDispatch 接口的指针。
返回值
此方法返回标准返回值,包括成功操作的S_OK。 有关详细信息和其他返回值,请参阅 ADSI 错误代码。
注解
指定要在 pAttributeEntries 数组中创建时初始化的所有属性。 还可以指定可选属性。 使用此方法创建目录对象时,具有任何字符串数据类型的属性不能为空或长度为零。
示例
以下 C/C++ 代码示例演示如何使用 IDirectoryObject::CreateDSObject 方法创建用户对象。
HRESULT hr;
IDirectoryObject *pDirObject=NULL;
ADSVALUE sAMValue;
ADSVALUE uPNValue;
ADSVALUE classValue;
LPDISPATCH pDisp;
ADS_ATTR_INFO attrInfo[] =
{
{ L"objectClass", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &classValue, 1 },
{L"sAMAccountName", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &sAMValue, 1},
{L"userPrincipalName", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &uPNValue, 1},
};
DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO);
classValue.dwType = ADSTYPE_CASE_IGNORE_STRING;
classValue.CaseIgnoreString = L"user";
sAMValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
sAMValue.CaseIgnoreString = L"jeffsmith";
uPNValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
uPNValue.CaseIgnoreString = L"jeffsmith@Fabrikam.com";
hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=com",
IID_IDirectoryObject, (void**) &pDirObject );
if ( SUCCEEDED(hr) )
{
hr = pDirObject->CreateDSObject( L"CN=Jeff Smith", attrInfo,
dwAttrs, &pDisp );
if ( SUCCEEDED(hr) )
{
// Use the DS object.
pDisp->Release();
}
pDirObject->Release();
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | iads.h |
DLL | Activeds.dll |