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

ADS_ESCAPE_MODE_ENUM

列挙型
基底型i4

メンバー 4

名前10進16進説明
ADS_ESCAPEDMODE_DEFAULT10x1

既定のエスケープモードは、エスケープモードを指定するための簡便な選択肢です。選択された形式に適した最小限のエスケープ操作を行う効果があります。したがって、既定の動作は、ディレクトリパスの取得に ADS_FORMAT_ENUM が使用する値によって決まります。

取得されるパスの形式 既定のエスケープモード
ADS_FORMAT_X500 ADS_ESCAPEDMODE_ON
ADS_FORMAT_X500_NO_SERVER ADS_ESCAPEDMODE_ON
ADS_FORMAT_WINDOWS ADS_ESCAPEDMODE_ON
ADS_FORMAT_WINDOWS_NO_SERVER ADS_ESCAPEDMODE_ON
ADS_FORMAT_X500_DN ADS_ESCAPEDMODE_OFF
ADS_FORMAT_X500_PARENT ADS_ESCAPEDMODE_OFF
ADS_FORMAT_WINDOWS_DN ADS_ESCAPEDMODE_OFF
ADS_FORMAT_WINDOWS_PARENT ADS_ESCAPEDMODE_OFF
ADS_FORMAT_LEAF ADS_ESCAPEDMODE_ON
ADS_ESCAPEDMODE_ON20x2すべての特殊文字がエスケープ形式で表示されます。たとえば、"CN=date=yy/mm/dd,weekday" はそのまま表示されます。
ADS_ESCAPEDMODE_OFF30x3ADSI の特殊文字がエスケープされていない形式で表示されます。たとえば、"CN=date=yy/mm/dd,weekday" は "CN=date=yy/mm/dd,weekday" と表示されます。
ADS_ESCAPEDMODE_OFF_EX40x4ADSI および LDAP の特殊文字がエスケープされていない形式で表示されます。たとえば、"CN=date=yy/mm/dd,weekday" は "CN=date=yy/mm/dd,weekday" と表示されます。

公式ドキュメント

ADS_ESCAPE_MODE_ENUM 列挙型は、ディレクトリパス内でエスケープ文字をどのように表示するかを指定します。

解説(Remarks)

特殊文字は、本来の目的以外で使用する場合はエスケープしなければなりません。たとえば、LDAP の特殊文字であるコンマ (,) と等号 (=) は、識別名 "CN=user,CN=users,DC=Fabrikam,DC=com" におけるフィールドの区切り文字として使用されます。属性値にこのような特殊文字が含まれる場合、たとえば "CN=users,last name=Smith" のように、これらの特殊文字はエスケープしなければなりません。これにより、Active Directory などの LDAP 準拠のディレクトリがパスを正しく解析できます。ただし、エスケープされたパス文字列は、画面上ではユーザーにとって分かりやすいとは限りません。この場合、ADS_ESCAPE_MODE_ENUM を設定して、エスケープされていない文字列 "CN=users,last name=Smith" としてパスを表示できます。

同様に、ADSI の特殊文字であるスラッシュ (/) は、"LDAP://server/CN=Jeff Smith,CN=Users,DC=Fabrikam,DC=com" のように ADSI 固有の要素を区切ります。ただし、それ以外の目的で使用する場合は、"LDAP://server/CN=Jeff Smith/California,CN=Users,DC=Fabrikam,DC=com" のようにエスケープしなければなりません。ADS_ESCAPE_MODE_ENUM のオプションを選択すると、このエスケープされた文字列を人間が読みやすい形式 "LDAP://server/CN=Jeff Smith/California,CN=Users,DC=Fabrikam,DC=com" で表示できます。

現時点では、ADSI の特殊文字はスラッシュ (/) のみです。ADSI のエスケープおよびエスケープ解除は、ADSI の特殊文字にのみ適用されます。この操作は LDAP の特殊文字には影響しません。つまり、LDAP の特殊文字はエスケープもエスケープ解除もされません。詳細および LDAP で定義されている特殊文字の一覧については、LDAP Special Characters を参照してください。

エスケープされていないパス文字列を表示するには、 IADsPathname インターフェイスとそのメソッドを使用します。他のすべての ADSI API はエスケープされたパス文字列を返します。

正しい動作を得るには、ADSI の特殊文字をエスケープする前に LDAP の特殊文字をエスケープしなければなりません。IADsPathname インターフェイスは、正しい順序で文字をエスケープします。

メモ VBScript は型ライブラリからデータを読み取れないため、Visual Basic Scripting Edition (VBScript) アプリケーションでは、上記で定義されているシンボル定数を認識できません。代わりに、数値の定数を使用して VBScript アプリケーションで適切なフラグを設定してください。シンボル定数を使用する場合は、ここで示すように、それらの定数を明示的に宣言してください。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum ADS_ESCAPE_MODE_ENUM : int {
    ADS_ESCAPEDMODE_DEFAULT = 1,
    ADS_ESCAPEDMODE_ON = 2,
    ADS_ESCAPEDMODE_OFF = 3,
    ADS_ESCAPEDMODE_OFF_EX = 4
} ADS_ESCAPE_MODE_ENUM;
public enum ADS_ESCAPE_MODE_ENUM : int
{
    ADS_ESCAPEDMODE_DEFAULT = 1,
    ADS_ESCAPEDMODE_ON = 2,
    ADS_ESCAPEDMODE_OFF = 3,
    ADS_ESCAPEDMODE_OFF_EX = 4,
}
Public Enum ADS_ESCAPE_MODE_ENUM As Integer
    ADS_ESCAPEDMODE_DEFAULT = 1
    ADS_ESCAPEDMODE_ON = 2
    ADS_ESCAPEDMODE_OFF = 3
    ADS_ESCAPEDMODE_OFF_EX = 4
End Enum
import enum

class ADS_ESCAPE_MODE_ENUM(enum.IntEnum):
    ADS_ESCAPEDMODE_DEFAULT = 1
    ADS_ESCAPEDMODE_ON = 2
    ADS_ESCAPEDMODE_OFF = 3
    ADS_ESCAPEDMODE_OFF_EX = 4
// ADS_ESCAPE_MODE_ENUM
pub const ADS_ESCAPEDMODE_DEFAULT: i32 = 1;
pub const ADS_ESCAPEDMODE_ON: i32 = 2;
pub const ADS_ESCAPEDMODE_OFF: i32 = 3;
pub const ADS_ESCAPEDMODE_OFF_EX: i32 = 4;
// ADS_ESCAPE_MODE_ENUM
const (
	ADS_ESCAPEDMODE_DEFAULT int32 = 1
	ADS_ESCAPEDMODE_ON int32 = 2
	ADS_ESCAPEDMODE_OFF int32 = 3
	ADS_ESCAPEDMODE_OFF_EX int32 = 4
)
const
  ADS_ESCAPEDMODE_DEFAULT = 1;
  ADS_ESCAPEDMODE_ON = 2;
  ADS_ESCAPEDMODE_OFF = 3;
  ADS_ESCAPEDMODE_OFF_EX = 4;
// ADS_ESCAPE_MODE_ENUM
pub const ADS_ESCAPEDMODE_DEFAULT: i32 = 1;
pub const ADS_ESCAPEDMODE_ON: i32 = 2;
pub const ADS_ESCAPEDMODE_OFF: i32 = 3;
pub const ADS_ESCAPEDMODE_OFF_EX: i32 = 4;
const
  ADS_ESCAPEDMODE_DEFAULT* = 1
  ADS_ESCAPEDMODE_ON* = 2
  ADS_ESCAPEDMODE_OFF* = 3
  ADS_ESCAPEDMODE_OFF_EX* = 4
enum ADS_ESCAPE_MODE_ENUM : int {
    ADS_ESCAPEDMODE_DEFAULT = 1,
    ADS_ESCAPEDMODE_ON = 2,
    ADS_ESCAPEDMODE_OFF = 3,
    ADS_ESCAPEDMODE_OFF_EX = 4,
}
#define global ADS_ESCAPEDMODE_DEFAULT 0x1
#define global ADS_ESCAPEDMODE_ON      0x2
#define global ADS_ESCAPEDMODE_OFF     0x3
#define global ADS_ESCAPEDMODE_OFF_EX  0x4