IADsSyntax Property Methods

The property methods of the IADsSyntax interface get or set the properties listed in the following table. For more information about property methods, see Interface Property Methods.

Properties

OleAutoDataType

Retrieves and sets a LONG that contains the value of the VT_xxx constant for the Automation data type that represents this syntax.

Active Directory supports the following VT_xxx constants for the Automation data type that represents this syntax:

  • VT_BOOL BOOL
  • VT_BSTR BSTR
  • VT_BSTRT BSTRT
  • VT_CY CURRENCY
  • VT_DATE Date
  • VT_EMPTY NULL
  • VT_ERROR Not valid
  • VT_I2 short
  • VT_I4 long
  • VT_R4 real
  • VT_R8 double
  • VT_UI1 BYTE

Access type: Read/write

Scripting data type: LONG

// C++ method syntax
HRESULT get_OleAutoDataType(
  [out] LONG* plAutoDataType
);
HRESULT put_OleAutoDataType(
  [in] LONG lAutoDataType
);

Remarks

An array of unsigned bytes, VT_UI1|VT_ARRAY could mean that the provider has mapped a syntax that cannot be mapped to an Automation virtual type.

Examples

The following code example examines the syntax of the OperatingSystemVersion attribute of a computer on a network through the WinNT provider. The result syntax is a string.

Dim obj As IADs
Dim cl As IADsClass
Dim pr As IADsProperty
Dim sy As IADsSyntax
Dim sc As IADsContainer
On Error GoTo Cleanup

Set obj = GetObject("WinNT://myMachine,computer")
Set cl = GetObject(obj.Schema)
Set sc = GetObject(cl.Parent)
Set pr = sc.GetObject("Property","OperatingSystemVersion")
Set sy = GetObject(sc.ADsPath & "/" & pr.Syntax)
 
MsgBox "Automation data types: " & sy.OleAutoDataType

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set obj = Nothing
    Set cl = Nothing
    Set pr = Nothing
    Set sy = Nothing
    Set sc = Nothing

The following code example examines the syntax of the OperatingSystemVersion attribute of a computer on a network through the WinNT provider. The result syntax is a string. For brevity, error checking is omitted.

#include <stdio.h>
#include <activeds.h>
#include <atlbase.h>
 
IADs *pObj = NULL;
IADsClass *pCls = NULL;
IADsProperty *pProp = NULL;
IADsSyntax *pSyn = NULL;
IADsContainer *pCont = NULL;
 
HRESULT hr = ADsGetObject(L"WinNT://myMachine,computer",
                          IID_IADs,
                          (void**)&amp;pObj);
if(FAILED(hr)){goto Cleanup;}
VARIANT var;
VariantInit(&amp;var);
CComBSTR sbstr;
 
pObj->get_Schema(&amp;sbstr);
printf("Object schema: %S\n",sbstr);
 
hr = ADsGetObject(sbstr, IID_IADsClass,(void**)&amp;pCls);
if(FAILED(hr)){goto Cleanup;}

pCls->get_Parent(&amp;sbstr);
printf("Object class's container:  %S\n", sbstr);
 
hr = ADsGetObject(sbstr, IID_IADsContainer, (void**)&amp;pCont);
if(FAILED(hr)){goto Cleanup;}
pCont->QueryInterface(IID_IADs,(void**)&amp;pObj);
pObj->get_ADsPath(&amp;sbstr);
printf("Container's AdsPath:  %S\n",sbstr);
 
IDispatch *pDisp;
hr = pCont->GetObject(CComBSTR("Property"),
                      CComBSTR("OperatingSystemVersion"),
                      (IDispatch**)&amp;pDisp);
if(FAILED(hr)){goto Cleanup;}
 
hr = pDisp->QueryInterface(IID_IADsProperty, (void**)&amp;pProp);
if(FAILED(hr)){goto Cleanup;}
 
hr = pProp->get_Syntax(&amp;sbstr);
if(FAILED(hr)){goto Cleanup;}
printf("Property Syntax:  %S\n",sbstr);
 
printf("ADsPath of the syntax object %S\n",sbstr);
 
hr = ADsGetObject(sbstr, IID_IADsSyntax, (void**)&amp;pSyn);
if(FAILED(hr)){goto Cleanup;}

long lType;
pSyn->get_OleAutoDataType(&amp;lType);
printf("Property syntax's OleAutoDataType: %d\n", lType);

Cleanup:
    if(pObj)
        pObj->Release();

    if(pProp)
        pProp->Release();

    if(pCls)
        pCls->Release();

    if(pSyn)
        pSyn->Release();

    if(pCont)
        pCont->Release();

Requirements

Minimum supported client
Windows Vista
Minimum supported server
Windows Server 2008
Header
Iads.h
DLL
Activeds.dll
IID
IID_IADsSyntax is defined as C8F93DD2-4AE0-11CF-9E73-00AA004A5691

See also

IADsClass

IADsProperty

IADsSyntax