LDAP Search Filters by Marcelo A. F. Calbucci Example 1: ParseString(L"(&(sn=Simpson)(givenName=Homer))") FullParser(L"(&(sn=Simpson)(givenName=Homer))", ...) FullParser(L"(sn=Simpson)", ...) ParseCondition(L"(sn=Simpson)", ...) FullParser(L"(givenName=Homer)", ...) ParseCondition(L"(givenName=Homer)", ...) Listing One Struct CFilterTree { enum eOpType = {OpTypeNull, OpTypeItem, OpTypeAnd, OpTypeOr, OpTypeNot}; // . . . member functions eOpType m_eOpType; vector m_SubFilters; wstring m_wsItem; }; Listing Two Class CLdapFilter { public: // ... protected: // ... private: CFilterTree m_FilterTree; wstring m_wsGeneratedString; bool m_fModified; // ... other members }; 1