ADS_ESCAPE_MODE_ENUM
列挙型メンバー 4
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| ADS_ESCAPEDMODE_DEFAULT | 1 | 0x1 | 既定のエスケープモードは、エスケープモードを指定するための簡便な選択肢です。選択された形式に適した最小限のエスケープ操作を行う効果があります。したがって、既定の動作は、ディレクトリパスの取得に ADS_FORMAT_ENUM が使用する値によって決まります。 |
| ADS_ESCAPEDMODE_ON | 2 | 0x2 | すべての特殊文字がエスケープ形式で表示されます。たとえば、"CN=date=yy/mm/dd,weekday" はそのまま表示されます。 |
| ADS_ESCAPEDMODE_OFF | 3 | 0x3 | ADSI の特殊文字がエスケープされていない形式で表示されます。たとえば、"CN=date=yy/mm/dd,weekday" は "CN=date=yy/mm/dd,weekday" と表示されます。 |
| ADS_ESCAPEDMODE_OFF_EX | 4 | 0x4 | ADSI および 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 インターフェイスは、正しい順序で文字をエスケープします。
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 Enumimport 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* = 4enum 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