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

IDsDisplaySpecifier

COM
IID1ab4a8c0-6a0b-11d2-ad49-00c04fa31a86継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

displaySpecifier クラスの Active Directory Domain Service オブジェクトへのアクセスを提供します。

メソッド 11

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetServer(LPWSTR pszServer, LPWSTR pszUserName, LPWSTR pszPassword, DWORD dwFlags)

表示指定子データを取得するサーバーを指定します。

pszServerLPWSTRin表示指定子データの取得に使用するサーバーの名前を格納した、null で終わる Unicode 文字列へのポインター。
pszUserNameLPWSTRinpszServer で指定されたサーバーへのアクセスに使用するユーザー名を格納した、null で終わる Unicode 文字列へのポインター。
pszPasswordLPWSTRinpszServer で指定されたサーバーへのアクセスに使用するパスワードを格納した、null で終わる Unicode 文字列へのポインター。
dwFlagsDWORDin

ディレクトリ サービスへのバインドに使用するフラグのセットを格納します。これはゼロ、または次の値のうち 1 つ以上を組み合わせたものを指定できます。

DSSSF_SIMPLEAUTHENTICATE (1 (0x1))

IDsDisplaySpecifier オブジェクトが、セキュリティで保護された認証ではなく単純認証を使用します。

DSSSF_DONTSIGNSEAL (2 (0x2))

IDsDisplaySpecifier オブジェクトが、オブジェクトを開く際に署名とシールを使用しません。

DSSSF_DSAVAILABLE (2147483648 (0x80000000))

IDsDisplaySpecifier オブジェクトが、ディレクトリ サーバーが利用可能かどうかを確認しません。

戻り値

次を含む標準的な HRESULT 値を返します。

解説(Remarks)

サーバー データは IDsDisplaySpecifier オブジェクトによってキャッシュされます。IDsDisplaySpecifier オブジェクトは、IDsDisplaySpecifier::GetDisplaySpecifier などの特定のメソッドが呼び出されるまで、実際にはサーバーへのバインドを行いません。

vtbl 4 HRESULT SetLanguageID(WORD langid)

IDsDisplaySpecifier オブジェクトが使用するロケールを、指定した言語に変更します。

langidWORDinIDsDisplaySpecifier オブジェクトが使用する言語識別子を格納します。このパラメーターがゼロの場合、このメソッドは GetUserDefaultUILanguage 関数を呼び出して現在のユーザー言語識別子を取得し、そのロケールを使用します。

戻り値

このメソッドは常に S_OK を返します。

解説(Remarks)

オブジェクトの作成時に、IDsDisplaySpecifier オブジェクトは GetUserDefaultUILanguage を呼び出してロケールを取得します。このメソッドを使用すると、オブジェクトの利用者が表示指定子で使用するロケールを変更できます。

vtbl 5 HRESULT GetDisplaySpecifier(LPWSTR pszObjectClass, GUID* riid, void** ppv)

IDsDisplaySpecifier::GetDisplaySpecifier メソッドは、Active Directory Domain Services 内の指定したクラスの表示指定子オブジェクトにバインドします。

pszObjectClassLPWSTRin表示指定子を取得する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。
riidGUID*in目的のインターフェイスのインターフェイス識別子を格納します。
ppvvoid**inoutオブジェクト クラスの表示指定子を受け取るインターフェイス ポインターへのポインター。

戻り値

次を含む標準的な HRESULT 値を返します。

解説(Remarks)

このメソッドは ADsOpenObject 関数を使用して、指定したクラスの表示指定子オブジェクトにバインドします。それが失敗した場合は、ユーザー ロケールの表示指定子へのバインドを試みます。これも失敗した場合は、既定のロケールの表示指定子にバインドします。

このメソッドは、直前の IDsDisplaySpecifier::SetServer の呼び出しで設定されたサーバーとユーザー資格情報を使用します。

次のコード例は、このメソッドの呼び出し方法を示しています。

HRESULT hr;
IDsDisplaySpecifier *pDS;

hr = CoCreateInstance(CLSID_DsDisplaySpecifier,
                        NULL,
                        CLSCTX_INPROC_SERVER,
                        IID_IDsDisplaySpecifier,
                        (void**)&pDS);
if(SUCCEEDED(hr))
{
    IADs *pads;

    hr = pDS->GetDisplaySpecifier(L"user", IID_IADs, (LPVOID*)&pads);

    if(SUCCEEDED(hr))
    {
        pads->Release();
    }

    pDS->Release();
}
vtbl 6 HRESULT GetIconLocation(LPWSTR pszObjectClass, DWORD dwFlags, LPWSTR pszBuffer, INT cchBuffer, INT* presid)

指定したオブジェクト クラスのアイコンの場所を取得します。

pszObjectClassLPWSTRinアイコンの場所を取得する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
dwFlagsDWORDin

取得するアイコンの種類を示すフラグのセットを格納します。これは次の値のうち 1 つ以上を組み合わせたものを指定できます。

DSGIF_ISNORMAL

オブジェクト クラスの通常のアイコンを取得します。

DSGIF_ISOPEN

オブジェクト クラスの、開いた状態のアイコン(開いたフォルダーなど)を取得します。オブジェクト クラスに開いた状態のアイコンがない場合、このメソッドはそのオブジェクト クラスの通常のアイコンの取得を試みます。

DSGIF_ISDISABLED

オブジェクト クラスの、無効状態のアイコン(無効化されたユーザーなど)を取得します。オブジェクト クラスに無効状態のアイコンがない場合、このメソッドはそのオブジェクト クラスの通常のアイコンの取得を試みます。

DSGIF_GETDEFAULTICON

オブジェクト クラスのアイコンが見つからない場合、このメソッドは既定のアイコンを返します。このフラグが指定されておらず、オブジェクト クラスのアイコンが見つからない場合、このメソッドは NULL を返します。

DSGIF_DEFAULTISCONTAINER

オブジェクト クラスのアイコンが見つからない場合、このメソッドは既定のアイコンとしてコンテナーのアイコンを返します。このフラグが指定されておらず、オブジェクト クラスのアイコンが見つからない場合、このメソッドは NULL を返します。

pszBufferLPWSTRoutアイコンを格納するファイルのパスとファイル名を受け取るワイド文字バッファーへのポインター。このバッファーは少なくとも cchBuffer ワイド文字分の長さが必要です。
cchBufferINTin終端の NULL 文字を含む、pszBuffer バッファーのサイズをワイド文字数で格納します。ファイル名がこの文字数を超える場合、ファイル名は切り詰められます。
presidINT*outアイコンのリソース識別子またはインデックスを受け取る INT 値へのポインター。この値が正の場合、その値はファイル内のアイコンのインデックスです。この値が負の場合、その絶対値がファイル内のアイコンのリソース識別子です。

戻り値

次を含む標準的な HRESULT 値を返します。

vtbl 7 HICON GetIcon(LPWSTR pszObjectClass, DWORD dwFlags, INT cxIcon, INT cyIcon)

IDsDisplaySpecifier::GetIcon メソッドは、指定したオブジェクト クラスのアイコンを取得します。

pszObjectClassLPWSTRinアイコンを取得する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
dwFlagsDWORDin

取得するアイコンの種類を示すフラグのセットを格納します。これは次の値のうち 1 つ以上を組み合わせたものを指定できます。

DSGIF_ISNORMAL

オブジェクト クラスの通常のアイコンを取得します。

DSGIF_ISOPEN

オブジェクト クラスの、開いた状態のアイコン(開いたフォルダーなど)を取得します。オブジェクト クラスに開いた状態のアイコンがない場合、このメソッドはそのオブジェクト クラスの通常のアイコンの取得を試みます。

DSGIF_ISDISABLED

オブジェクト クラスの、無効状態のアイコン(無効化されたユーザーなど)を取得します。オブジェクト クラスに無効状態のアイコンがない場合、このメソッドはそのオブジェクト クラスの通常のアイコンの取得を試みます。

DSGIF_ISMASK

DSGIF_ISNORMALDSGIF_ISOPENDSGIF_ISDISABLED の各フラグをマスクするために使用します。

DSGIF_GETDEFAULTICON

オブジェクト クラスのアイコンが見つからない場合、このメソッドは既定のアイコンを返します。このフラグが指定されておらず、オブジェクト クラスのアイコンが見つからない場合、このメソッドは NULL を返します。

DSGIF_DEFAULTISCONTAINER

オブジェクト クラスのアイコンが見つからない場合、このメソッドは既定のアイコンとしてコンテナーのアイコンを返します。このフラグが指定されておらず、オブジェクト クラスのアイコンが見つからない場合、このメソッドは NULL を返します。

cxIconINTinアイコンの希望する幅をピクセル単位で格納します。このメソッドは、この幅に最も近いアイコンを取得します。
cyIconINTinアイコンの希望する高さをピクセル単位で格納します。このメソッドは、この高さに最も近いアイコンを取得します。

戻り値

成功した場合はアイコンのハンドルを返し、それ以外の場合は NULL を返します。呼び出し元は、アイコンが不要になったときに、このハンドルを DestroyIcon に渡してアイコンを破棄する必要があります。

vtbl 8 HRESULT GetFriendlyClassName(LPWSTR pszObjectClass, LPWSTR pszBuffer, INT cchBuffer)

IDsDisplaySpecifier::GetFriendlyClassName メソッドは、オブジェクト クラスのローカライズされた名前を取得します。

pszObjectClassLPWSTRin名前を取得する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
pszBufferLPWSTRout名前文字列を受け取るワイド文字バッファーへのポインター。このバッファーは少なくとも cchBuffer ワイド文字分の長さが必要です。
cchBufferINTin終端の NULL 文字を含む、pszBuffer バッファーのサイズをワイド文字数で格納します。名前がこの文字数を超える場合、名前は切り詰められます。

戻り値

次を含む標準的な HRESULT 値を返します。

解説(Remarks)

オブジェクト クラスの表示指定子にフレンドリ名が設定されていない場合、このメソッドは pszObjectClass で渡された名前を返します。

vtbl 9 HRESULT GetFriendlyAttributeName(LPWSTR pszObjectClass, LPWSTR pszAttributeName, LPWSTR pszBuffer, DWORD cchBuffer)

IDsDisplaySpecifier::GetFriendlyAttributeName メソッドは、指定したオブジェクト クラスの属性のローカライズされた名前を取得します。

pszObjectClassLPWSTRinローカライズされた属性名を取得する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
pszAttributeNameLPWSTRinローカライズされた名前を取得する対象の属性の名前を格納した、null で終わる Unicode 文字列へのポインター。
pszBufferLPWSTRout名前文字列を受け取るワイド文字バッファーへのポインター。このバッファーは少なくとも cchBuffer ワイド文字分の長さが必要です。
cchBufferDWORDin終端の NULL 文字を含む、pszBuffer バッファーのサイズをワイド文字数で格納します。名前がこの文字数を超える場合、名前は切り詰められます。

戻り値

次を含む標準的な HRESULT 値を返します。

解説(Remarks)

このメソッドは、クラスの表示指定子を参照して attributeNames プロパティを調べ、指定された属性名に一致する属性名のペアを探します。一致が見つからない場合は、入力された属性名がそのまま返されます。

vtbl 10 BOOL IsClassContainer(LPWSTR pszObjectClass, LPWSTR pszADsPath, DWORD dwFlags)

指定したオブジェクト クラスがコンテナーかどうかを判定します。

pszObjectClassLPWSTRinコンテナーかどうかを判定する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
pszADsPathLPWSTRin表示指定子コンテナー内でバインド可能で、そのスキーマ データを取得できるクラス オブジェクトの ADsPath を格納した、null で終わる Unicode 文字列へのポインター。
dwFlagsDWORDin

このメソッドの動作を変更するフラグを格納します。これはゼロ、または次のフラグを指定できます。

DSICCF_IGNORETREATASLEAF

表示指定子内の treatAsLeaf 属性が無視され、クラスがコンテナーかどうかの判定にはスキーマ データのみが使用されます。

戻り値

指定したクラスがコンテナーの場合は TRUE を返します。それ以外の場合は FALSE を返します。

解説(Remarks)

このメソッドは、スキーマ データおよび/または表示指定子の treatAsLeaf 属性を使用して、オブジェクト クラスがコンテナーかどうかを判定します。スキーマがそのクラスは他のオブジェクトを格納できることを示している場合、そのオブジェクト クラスはコンテナーであると判定されます。表示指定子の treatAsLeaf 属性を使用すると、スキーマの指標を上書きできます。

vtbl 11 HRESULT GetClassCreationInfo(LPWSTR pszObjectClass, DSCLASSCREATIONINFO** ppdscci)

指定したオブジェクト クラスのクラス作成ウィザード オブジェクトに関するデータを取得します。

pszObjectClassLPWSTRinADsType を取得する対象の属性の名前を格納した、null で終わる Unicode 文字列へのポインター。
ppdscciDSCLASSCREATIONINFO**inoutクラス作成データを受け取る DSCLASSCREATIONINFO 構造体ポインターへのポインター。このメモリはこのメソッドによって割り当てられます。呼び出し元は、不要になったときに LocalFree を使用してこのメモリを解放する必要があります。

戻り値

次を含む標準的な HRESULT 値を返します。

vtbl 12 HRESULT EnumClassAttributes(LPWSTR pszObjectClass, LPDSENUMATTRIBUTES pcbEnum, LPARAM lParam)

指定したオブジェクト クラスの属性を列挙します。

pszObjectClassLPWSTRin属性を列挙する対象のオブジェクト クラスの名前を格納した、null で終わる Unicode 文字列へのポインター。オブジェクト クラス名の例としては "user" や "container" があります。
pcbEnumLPDSENUMATTRIBUTESin列挙される属性ごとに 1 回呼び出される、アプリケーション提供の DSEnumAttributesCallback 関数へのポインター。
lParamLPARAMinDSEnumAttributesCallback 関数の lParam パラメーターとして渡される、アプリケーション定義のパラメーターを格納します。

戻り値

次を含む標準的な HRESULT 値を返します。

vtbl 13 ADSTYPE GetAttributeADsType(LPWSTR pszAttributeName)

指定した属性の属性型を取得します。

pszAttributeNameLPWSTRin型を取得する対象の属性の名前を格納した、null で終わる Unicode 文字列へのポインター。

戻り値

属性の型を示す ADSTYPEENUM 値のいずれかを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IDsDisplaySpecifier "{1AB4A8C0-6A0B-11D2-AD49-00C04FA31A86}"
#usecom global IDsDisplaySpecifier IID_IDsDisplaySpecifier "{}"
#comfunc global IDsDisplaySpecifier_SetServer                 3 wstr,wstr,wstr,int
#comfunc global IDsDisplaySpecifier_SetLanguageID             4 int
#comfunc global IDsDisplaySpecifier_GetDisplaySpecifier       5 wstr,var,sptr
#comfunc global IDsDisplaySpecifier_GetIconLocation           6 wstr,int,var,int,var
#comfunc global IDsDisplaySpecifier_GetIcon                   7 wstr,int,int,int
#comfunc global IDsDisplaySpecifier_GetFriendlyClassName      8 wstr,var,int
#comfunc global IDsDisplaySpecifier_GetFriendlyAttributeName  9 wstr,wstr,var,int
#comfunc global IDsDisplaySpecifier_IsClassContainer          10 wstr,wstr,int
#comfunc global IDsDisplaySpecifier_GetClassCreationInfo      11 wstr,var
#comfunc global IDsDisplaySpecifier_EnumClassAttributes       12 wstr,sptr,sptr
#comfunc global IDsDisplaySpecifier_GetAttributeADsType       13 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。