Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › IADsProperty

IADsProperty

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDc8f93dd3-4ae0-11cf-9e73-00aa004a5691継承元IADs呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl20

公式ドキュメント

IADsProperty インターフェイスは、スキーマ クラス オブジェクトの単一の属性定義を管理するために設計されています。

解説(Remarks)

IADsProperty インターフェイスのメソッドを使用すると、プロバイダー固有の実装に新しい属性やプロパティ オブジェクトを追加できます。

次のコード例は、プロパティの属性定義を確認するために IADsProperty インターフェイスを適用する、上記の手順を示しています。

Dim obj As IADs
Dim cl As IADsClass
Dim pr As IADsProperty
Dim sy As IADsSyntax
Dim sc As IADsContainer

On Error GoTo Cleanup
 
' Step 1
Set obj = GetObject("WinNT://myMachine,computer")
Set cl = GetObject(obj.Schema)
 
' Step 2
' Skip it, assuming the "Owner" attribute is supported by obj.
' For the computer object in this example, it is indeed one of 
' the supported optional properties.
 
' Step 3
Set sc = GetObject(cl.Parent)
 
' Step 4
Set pr = sc.GetObject("Property","Owner")
 
' Step 5
MsgBox "Attribute: " & pr.Name
MsgBox "Syntax:    " & pr.Syntax
If pr.Multivalued = True Then
    MsgBox "The Owner attribute has multiple values."
Else
    MsgBox "The Owner attribute has a single value."
End If
 
' To further examine the syntax
Set sy = GetObject(sc.AdsPath & "/" & pr.Syntax)
MsgBox "Syntax object: " & sy.Name & " of OleAutoDataType: " _
       & 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

メソッド 11

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 20 HRESULT get_OID(LPWSTR* retval)
retvalLPWSTR*outプロパティのオブジェクト識別子(OID)を示す文字列を受け取る出力ポインタ。
vtbl 21 HRESULT put_OID(LPWSTR bstrOID)
bstrOIDLPWSTRin設定するプロパティのオブジェクト識別子(OID)を示す文字列。
vtbl 22 HRESULT get_Syntax(LPWSTR* retval)
retvalLPWSTR*outプロパティの構文(データ型定義)を示す文字列を受け取る出力ポインタ。
vtbl 23 HRESULT put_Syntax(LPWSTR bstrSyntax)
bstrSyntaxLPWSTRin設定するプロパティの構文(データ型定義)を示す文字列。
vtbl 24 HRESULT get_MaxRange(INT* retval)
retvalINT*outプロパティ値の上限(最大範囲)を受け取る出力ポインタ。
vtbl 25 HRESULT put_MaxRange(INT lnMaxRange)
lnMaxRangeINTin設定するプロパティ値の上限(最大範囲)。
vtbl 26 HRESULT get_MinRange(INT* retval)
retvalINT*outプロパティ値の下限(最小範囲)を受け取る出力ポインタ。
vtbl 27 HRESULT put_MinRange(INT lnMinRange)
lnMinRangeINTin設定するプロパティ値の下限(最小範囲)。
vtbl 28 HRESULT get_MultiValued(VARIANT_BOOL* retval)
retvalVARIANT_BOOL*outプロパティが多値ならVARIANT_TRUEを受け取るVARIANT_BOOL出力ポインタ。
vtbl 29 HRESULT put_MultiValued(VARIANT_BOOL fMultiValued)
fMultiValuedVARIANT_BOOLinプロパティを多値にする場合にVARIANT_TRUEを指定する。
vtbl 30 HRESULT Qualifiers(IADsCollection** ppQualifiers)

このプロパティの追加の修飾子を記述する ADSI オブジェクトのコレクションを返します。

ppQualifiersIADsCollection**outこのプロパティの追加の制限を表す ADSI コレクション オブジェクト上の IADsCollection インターフェイスへの間接ポインター。

戻り値

このメソッドは、標準の戻り値である E_FAIL および E_UNEXPECTED に加えて、次の値をサポートします。

解説(Remarks)

修飾子オブジェクトはプロバイダー固有です。サポートされている場合、このメソッドを使用して拡張スキーマ データを取得できます。

このメソッドは、現在 Microsoft が提供するどのプロバイダーでもサポートされていません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IADsProperty "{C8F93DD3-4AE0-11CF-9E73-00AA004A5691}"
#usecom global IADsProperty IID_IADsProperty "{}"
#comfunc global IADsProperty_get_OID          20 var
#comfunc global IADsProperty_put_OID          21 wstr
#comfunc global IADsProperty_get_Syntax       22 var
#comfunc global IADsProperty_put_Syntax       23 wstr
#comfunc global IADsProperty_get_MaxRange     24 var
#comfunc global IADsProperty_put_MaxRange     25 int
#comfunc global IADsProperty_get_MinRange     26 var
#comfunc global IADsProperty_put_MinRange     27 int
#comfunc global IADsProperty_get_MultiValued  28 var
#comfunc global IADsProperty_put_MultiValued  29 int
#comfunc global IADsProperty_Qualifiers       30 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。