0

我正在从c++查询我的 Active Directory 。我已经成功地将 IADs 对象与服务器绑定,并且我还能够检索用户信息。我正在使用 VARIANT 数据类型来检索对象。大多数对象是 BSTR 字符串。但是像badPWDCount、pwdLastSet、logonCount这样的属性不是。因此我无法检索这些值。请帮我解决一下这个。

变体变体;hr=testIAD->Get(查询,&vari); if(hr==0) { printf(%S\n\n", V_BSTR(&vari)); }

这里不知道如何使用VARIANT来打印BSTR以外的数据类型。

4

1 回答 1

0

VARIANT有一个名为的成员vt,它指示它当前包含的值类型。例如,如果vt设置为VT_UNKNOWN变量,则包含一个指向 IUnknown 接口的指针,该接口可以使用该punkVal成员设置或检索。

VARIANT v;
GetValueAsVariant(&v);
if(v.vt == VT_UNKNOWN)
{
    IUnknown *i = vt.punkVal;

    // ... do something ...

    i->Release();
}

MSDN 网站上有可用的变体类型列表

于 2013-07-07T05:00:26.897 回答