; 
; Exports of file IISMAP.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY IISMAP.dll
EXPORTS
; public: __thiscall CAllocString::CAllocString(void)
??0CAllocString@@QAE@XZ
; public: __thiscall CBlob::CBlob(void)
??0CBlob@@QAE@XZ
; public: __thiscall CBlobXBF::CBlobXBF(void)
??0CBlobXBF@@QAE@XZ
; public: __thiscall CCert11Mapping::CCert11Mapping(class CIisAcctMapper *)
??0CCert11Mapping@@QAE@PAVCIisAcctMapper@@@Z
; public: __thiscall CCertGlobalRuleInfo::CCertGlobalRuleInfo(void)
??0CCertGlobalRuleInfo@@QAE@XZ
; public: __thiscall CCertMapRule::CCertMapRule(void)
??0CCertMapRule@@QAE@XZ
; public: __thiscall CDecodedCert::CDecodedCert(struct _CERT_CONTEXT *)
??0CDecodedCert@@QAE@PAU_CERT_CONTEXT@@@Z
; public: __thiscall CIisAcctMapper::CIisAcctMapper(void)
??0CIisAcctMapper@@QAE@XZ
; public: __thiscall CIisCert11Mapper::CIisCert11Mapper(void)
??0CIisCert11Mapper@@QAE@XZ
; public: __thiscall CIisRuleMapper::CIisRuleMapper(void)
??0CIisRuleMapper@@QAE@XZ
; public: __thiscall CIssuerStore::CIssuerStore(void)
??0CIssuerStore@@QAE@XZ
; public: __thiscall CPtrDwordXBF::CPtrDwordXBF(void)
??0CPtrDwordXBF@@QAE@XZ
; public: __thiscall CPtrXBF::CPtrXBF(void)
??0CPtrXBF@@QAE@XZ
; public: __thiscall CStoreXBF::CStoreXBF(unsigned int)
??0CStoreXBF@@QAE@I@Z
; public: __thiscall CAllocString::~CAllocString(void)
??1CAllocString@@QAE@XZ
; public: __thiscall CBlob::~CBlob(void)
??1CBlob@@QAE@XZ
; public: __thiscall CBlobXBF::~CBlobXBF(void)
??1CBlobXBF@@QAE@XZ
; public: __thiscall CCert11Mapping::~CCert11Mapping(void)
??1CCert11Mapping@@QAE@XZ
; public: __thiscall CCertGlobalRuleInfo::~CCertGlobalRuleInfo(void)
??1CCertGlobalRuleInfo@@QAE@XZ
; public: __thiscall CCertMapRule::~CCertMapRule(void)
??1CCertMapRule@@QAE@XZ
; public: __thiscall CDecodedCert::~CDecodedCert(void)
??1CDecodedCert@@QAE@XZ
; public: __thiscall CIisAcctMapper::~CIisAcctMapper(void)
??1CIisAcctMapper@@QAE@XZ
; public: __thiscall CIisCert11Mapper::~CIisCert11Mapper(void)
??1CIisCert11Mapper@@QAE@XZ
; public: __thiscall CIisRuleMapper::~CIisRuleMapper(void)
??1CIisRuleMapper@@QAE@XZ
; public: __thiscall CIssuerStore::~CIssuerStore(void)
??1CIssuerStore@@QAE@XZ
; public: __thiscall CStoreXBF::~CStoreXBF(void)
??1CStoreXBF@@QAE@XZ
; public: __thiscall CStrPtrXBF::~CStrPtrXBF(void)
??1CStrPtrXBF@@QAE@XZ
; public: void __thiscall CStoreXBF::`default constructor closure'(void)
??_FCStoreXBF@@QAEXXZ
; public: virtual int __thiscall CIisAcctMapper::Add(class CIisMapping *,int)
?Add@CIisAcctMapper@@UAEHPAVCIisMapping@@H@Z
; public: unsigned long __thiscall CBlobXBF::AddEntry(unsigned char *,unsigned long)
?AddEntry@CBlobXBF@@QAEKPAEK@Z
; public: unsigned long __thiscall CStrPtrXBF::AddEntry(char *)
?AddEntry@CStrPtrXBF@@QAEKPAD@Z
; public: virtual unsigned long __thiscall CIisAcctMapper::AddEx(class CIisMapping *)
?AddEx@CIisAcctMapper@@UAEKPAVCIisMapping@@@Z
; public: int __thiscall CCertMapRule::AddIssuerEntry(char *,int)
?AddIssuerEntry@CCertMapRule@@QAEHPADH@Z
; public: unsigned long __thiscall CPtrDwordXBF::AddPtr(unsigned long)
?AddPtr@CPtrDwordXBF@@QAEKK@Z
; public: unsigned long __thiscall CPtrXBF::AddPtr(void *)
?AddPtr@CPtrXBF@@QAEKPAX@Z
; public: unsigned long __thiscall CIisRuleMapper::AddRule(class CCertMapRule *)
?AddRule@CIisRuleMapper@@QAEKPAVCCertMapRule@@@Z
; public: unsigned long __thiscall CIisRuleMapper::AddRule(void)
?AddRule@CIisRuleMapper@@QAEKXZ
; public: unsigned long __thiscall CCertMapRule::AddRuleElem(unsigned long,enum CERT_FIELD_ID,char *,unsigned char *,unsigned long,unsigned long)
?AddRuleElem@CCertMapRule@@QAEKKW4CERT_FIELD_ID@@PADPAEKK@Z
; public: int __thiscall CCertGlobalRuleInfo::AddRuleOrder(void)
?AddRuleOrder@CCertGlobalRuleInfo@@QAEHXZ
; public: int __thiscall CAllocString::Append(char *)
?Append@CAllocString@@QAEHPAD@Z
; public: int __thiscall CStoreXBF::Append(unsigned long)
?Append@CStoreXBF@@QAEHK@Z
; public: int __thiscall CStoreXBF::Append(char *)
?Append@CStoreXBF@@QAEHPAD@Z
; public: int __thiscall CStoreXBF::Append(unsigned char *,unsigned long)
?Append@CStoreXBF@@QAEHPAEK@Z
; public: int __thiscall CStoreXBF::AppendZ(char *)
?AppendZ@CStoreXBF@@QAEHPAD@Z
; int __stdcall BinaryToMatchRequest(unsigned char *,unsigned long,char * *)
?BinaryToMatchRequest@@YGHPAEKPAPAD@Z
; public: void __thiscall CStoreXBF::Clear(void)
?Clear@CStoreXBF@@QAEXXZ
; public: virtual int __thiscall CIisMapping::Clone(class CIisMapping * *)
?Clone@CIisMapping@@UAEHPAPAV1@@Z
; public: int __thiscall CIisMapping::CloneEx(class CIisMapping * *,char * *,char * *,unsigned long *,unsigned long *,unsigned int)
?CloneEx@CIisMapping@@QAEHPAPAV1@PAPAD1PAK2I@Z
; public: int __thiscall CIisMapping::Copy(class CIisMapping *)
?Copy@CIisMapping@@QAEHPAV1@@Z
; public: int __thiscall CIisAcctMapper::Create(void)
?Create@CIisAcctMapper@@QAEHXZ
; public: virtual class CIisMapping * __thiscall CIisAcctMapper::CreateNewMapping(void)
?CreateNewMapping@CIisAcctMapper@@UAEPAVCIisMapping@@XZ
; public: class CIisMapping * __thiscall CIisCert11Mapper::CreateNewMapping(unsigned char *,unsigned long)
?CreateNewMapping@CIisCert11Mapper@@QAEPAVCIisMapping@@PAEK@Z
; public: virtual class CIisMapping * __thiscall CIisCert11Mapper::CreateNewMapping(void)
?CreateNewMapping@CIisCert11Mapper@@UAEPAVCIisMapping@@XZ
; public: int __thiscall CStoreXBF::DecreaseUse(unsigned long)
?DecreaseUse@CStoreXBF@@QAEHK@Z
; public: int __thiscall CIisAcctMapper::Delete(unsigned long,int)
?Delete@CIisAcctMapper@@QAEHKH@Z
; public: int __thiscall CIisAcctMapper::Delete(void)
?Delete@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CBlobXBF::DeleteEntry(unsigned long)
?DeleteEntry@CBlobXBF@@QAEHK@Z
; public: int __thiscall CStrPtrXBF::DeleteEntry(unsigned long)
?DeleteEntry@CStrPtrXBF@@QAEHK@Z
; public: int __thiscall CCertMapRule::DeleteIssuerEntry(unsigned long)
?DeleteIssuerEntry@CCertMapRule@@QAEHK@Z
; public: int __thiscall CPtrDwordXBF::DeletePtr(unsigned long)
?DeletePtr@CPtrDwordXBF@@QAEHK@Z
; public: int __thiscall CPtrXBF::DeletePtr(unsigned long)
?DeletePtr@CPtrXBF@@QAEHK@Z
; public: int __thiscall CIisRuleMapper::DeleteRule(unsigned long)
?DeleteRule@CIisRuleMapper@@QAEHK@Z
; public: int __thiscall CCertGlobalRuleInfo::DeleteRuleById(unsigned long,int)
?DeleteRuleById@CCertGlobalRuleInfo@@QAEHKH@Z
; public: int __thiscall CCertMapRule::DeleteRuleElem(unsigned long)
?DeleteRuleElem@CCertMapRule@@QAEHK@Z
; public: int __thiscall CCertMapRule::DeleteRuleElemsByField(enum CERT_FIELD_ID)
?DeleteRuleElemsByField@CCertMapRule@@QAEHW4CERT_FIELD_ID@@@Z
; public: virtual int __thiscall CIisMapping::Deserialize(struct _iobuf *,void *,void *)
?Deserialize@CIisMapping@@UAEHPAU_iobuf@@PAX1@Z
; char * __stdcall EnumerateKnownSubFields(unsigned long)
?EnumerateKnownSubFields@@YGPADK@Z
; public: int __thiscall CIisAcctMapper::FindMatch(class CIisMapping *,class CIisMapping * *,unsigned long *)
?FindMatch@CIisAcctMapper@@QAEHPAVCIisMapping@@PAPAV2@PAK@Z
; public: int __thiscall CIisAcctMapper::FlushAlternate(int)
?FlushAlternate@CIisAcctMapper@@QAEHH@Z
; void __stdcall FreeMatchConversion(void *)
?FreeMatchConversion@@YGXPAX@Z
; public: char * __thiscall CAllocString::Get(void)
?Get@CAllocString@@QAEPADXZ
; public: unsigned char * __thiscall CBlob::Get(unsigned long *)
?Get@CBlob@@QAEPAEPAK@Z
; public: class CBlob * __thiscall CBlobXBF::GetBlob(unsigned long)
?GetBlob@CBlobXBF@@QAEPAVCBlob@@K@Z
; public: unsigned char * __thiscall CStoreXBF::GetBuff(void)
?GetBuff@CStoreXBF@@QAEPAEXZ
; public: int __thiscall CBlobXBF::GetEntry(unsigned long,unsigned char * *,unsigned long *)
?GetEntry@CBlobXBF@@QAEHKPAPAEPAK@Z
; public: char * __thiscall CStrPtrXBF::GetEntry(unsigned long)
?GetEntry@CStrPtrXBF@@QAEPADK@Z
; public: class CCertGlobalRuleInfo * __thiscall CIisRuleMapper::GetGlobalRulesInfo(void)
?GetGlobalRulesInfo@CIisRuleMapper@@QAEPAVCCertGlobalRuleInfo@@XZ
; public: struct _IISMDB_HEntry * __thiscall CIisAcctMapper::GetHierarchy(unsigned long *)
?GetHierarchy@CIisAcctMapper@@QAEPAU_IISMDB_HEntry@@PAK@Z
; unsigned long __stdcall GetIdFlags(enum CERT_FIELD_ID)
?GetIdFlags@@YGKW4CERT_FIELD_ID@@@Z
; public: int __thiscall CDecodedCert::GetIssuer(void * *,unsigned long *)
?GetIssuer@CDecodedCert@@QAEHPAPAXPAK@Z
; public: unsigned long __thiscall CCertMapRule::GetIssuerCount(void)
?GetIssuerCount@CCertMapRule@@QAEKXZ
; public: int __thiscall CCertMapRule::GetIssuerEntry(unsigned long,int *,char * *)
?GetIssuerEntry@CCertMapRule@@QAEHKPAHPAPAD@Z
; public: int __thiscall CCertMapRule::GetIssuerEntryByName(char *,int *)
?GetIssuerEntryByName@CCertMapRule@@QAEHPADPAH@Z
; public: int __thiscall CIisAcctMapper::GetMapping(unsigned long,class CIisMapping * *,int,int)
?GetMapping@CIisAcctMapper@@QAEHKPAPAVCIisMapping@@HH@Z
; public: unsigned long __thiscall CIisAcctMapper::GetMappingCount(void)
?GetMappingCount@CIisAcctMapper@@QAEKXZ
; public: int __thiscall CCertMapRule::GetMatchAllIssuer(void)
?GetMatchAllIssuer@CCertMapRule@@QAEHXZ
; public: unsigned long __thiscall CBlobXBF::GetNbEntry(void)
?GetNbEntry@CBlobXBF@@QAEKXZ
; public: unsigned long __thiscall CStrPtrXBF::GetNbEntry(void)
?GetNbEntry@CStrPtrXBF@@QAEKXZ
; public: virtual unsigned int __thiscall CIisMapping::GetNbField(char * * *)
?GetNbField@CIisMapping@@UAEIPAPAPAD@Z
; public: virtual unsigned int __thiscall CIisMapping::GetNbField(char * * *,unsigned long * *)
?GetNbField@CIisMapping@@UAEIPAPAPADPAPAK@Z
; public: unsigned long __thiscall CIssuerStore::GetNbIssuers(void)
?GetNbIssuers@CIssuerStore@@QAEKXZ
; public: unsigned long __thiscall CIisAcctMapper::GetNbMapping(int)
?GetNbMapping@CIisAcctMapper@@QAEKH@Z
; public: unsigned long __thiscall CPtrDwordXBF::GetNbPtr(void)
?GetNbPtr@CPtrDwordXBF@@QAEKXZ
; public: unsigned long __thiscall CPtrXBF::GetNbPtr(void)
?GetNbPtr@CPtrXBF@@QAEKXZ
; public: unsigned long __thiscall CIisAcctMapper::GetOptions(void)
?GetOptions@CIisAcctMapper@@QAEKXZ
; public: unsigned long * __thiscall CPtrDwordXBF::GetPtr(unsigned long)
?GetPtr@CPtrDwordXBF@@QAEPAKK@Z
; public: void * __thiscall CPtrXBF::GetPtr(unsigned long)
?GetPtr@CPtrXBF@@QAEPAXK@Z
; public: void * __thiscall CPtrXBF::GetPtrAddr(unsigned long)
?GetPtrAddr@CPtrXBF@@QAEPAXK@Z
; public: class CCertMapRule * __thiscall CIisRuleMapper::GetRule(unsigned long)
?GetRule@CIisRuleMapper@@QAEPAVCCertMapRule@@K@Z
; public: char * __thiscall CCertMapRule::GetRuleAccount(void)
?GetRuleAccount@CCertMapRule@@QAEPADXZ
; public: unsigned long __thiscall CIisRuleMapper::GetRuleCount(void)
?GetRuleCount@CIisRuleMapper@@QAEKXZ
; public: int __thiscall CCertMapRule::GetRuleDenyAccess(void)
?GetRuleDenyAccess@CCertMapRule@@QAEHXZ
; public: int __thiscall CCertMapRule::GetRuleElem(unsigned long,enum CERT_FIELD_ID *,char * *,unsigned long *,char * *,unsigned long *)
?GetRuleElem@CCertMapRule@@QAEHKPAW4CERT_FIELD_ID@@PAPADPAK12@Z
; public: unsigned long __thiscall CCertMapRule::GetRuleElemCount(void)
?GetRuleElemCount@CCertMapRule@@QAEKXZ
; public: int __thiscall CCertMapRule::GetRuleEnabled(void)
?GetRuleEnabled@CCertMapRule@@QAEHXZ
; public: char * __thiscall CCertMapRule::GetRuleName(void)
?GetRuleName@CCertMapRule@@QAEPADXZ
; public: unsigned long * __thiscall CCertGlobalRuleInfo::GetRuleOrderArray(void)
?GetRuleOrderArray@CCertGlobalRuleInfo@@QAEPAKXZ
; public: unsigned long __thiscall CCertGlobalRuleInfo::GetRuleOrderCount(void)
?GetRuleOrderCount@CCertGlobalRuleInfo@@QAEKXZ
; public: char * __thiscall CCertMapRule::GetRulePassword(void)
?GetRulePassword@CCertMapRule@@QAEPADXZ
; public: int __thiscall CCertGlobalRuleInfo::GetRulesEnabled(void)
?GetRulesEnabled@CCertGlobalRuleInfo@@QAEHXZ
; public: struct _CERT_RDN_ATTR * * __thiscall CDecodedCert::GetSubField(enum CERT_FIELD_ID,char *,unsigned long *)
?GetSubField@CDecodedCert@@QAEPAPAU_CERT_RDN_ATTR@@W4CERT_FIELD_ID@@PADPAK@Z
; public: unsigned long __thiscall CStoreXBF::GetUsed(void)
?GetUsed@CStoreXBF@@QAEKXZ
; int __stdcall IISuudecode(char *,unsigned char *,unsigned long *,int)
?IISuudecode@@YGHPADPAEPAKH@Z
; int __stdcall IISuuencode(unsigned char *,unsigned long,unsigned char *,int)
?IISuuencode@@YGHPAEK0H@Z
; void __stdcall ImportIISCertMappingsToIIS6(void)
?ImportIISCertMappingsToIIS6@@YGXXZ
; public: int __thiscall CBlob::InitSet(unsigned char *,unsigned long)
?InitSet@CBlob@@QAEHPAEK@Z
; public: unsigned long __thiscall CBlobXBF::InsertEntry(unsigned long,char *,unsigned long)
?InsertEntry@CBlobXBF@@QAEKKPADK@Z
; public: unsigned long __thiscall CStrPtrXBF::InsertEntry(unsigned long,char *)
?InsertEntry@CStrPtrXBF@@QAEKKPAD@Z
; public: unsigned long __thiscall CPtrDwordXBF::InsertPtr(unsigned long,unsigned long)
?InsertPtr@CPtrDwordXBF@@QAEKKK@Z
; public: unsigned long __thiscall CPtrXBF::InsertPtr(unsigned long,void *)
?InsertPtr@CPtrXBF@@QAEKKPAX@Z
; public: int __thiscall CCertGlobalRuleInfo::IsValid(void)
?IsValid@CCertGlobalRuleInfo@@QAEHXZ
; public: int __thiscall CCertMapRule::IsValid(void)
?IsValid@CCertMapRule@@QAEHXZ
; public: int __thiscall CIisRuleMapper::IsValid(void)
?IsValid@CIisRuleMapper@@QAEHXZ
; public: int __thiscall CIisAcctMapper::Load(void)
?Load@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CStoreXBF::Load(void *)
?Load@CStoreXBF@@QAEHPAX@Z
; public: void __thiscall CIisAcctMapper::Lock(void)
?Lock@CIisAcctMapper@@QAEXXZ
; char * __stdcall MapAsn1ToSubField(char *)
?MapAsn1ToSubField@@YGPADPAD@Z
; enum CERT_FIELD_ID  __stdcall MapFieldToId(char *)
?MapFieldToId@@YG?AW4CERT_FIELD_ID@@PAD@Z
; char * __stdcall MapIdToField(enum CERT_FIELD_ID)
?MapIdToField@@YGPADW4CERT_FIELD_ID@@@Z
; char * __stdcall MapSubFieldToAsn1(char *)
?MapSubFieldToAsn1@@YGPADPAD@Z
; public: virtual int __thiscall CIisMapping::MappingGetField(unsigned long,char * *)
?MappingGetField@CIisMapping@@UAEHKPAPAD@Z
; public: virtual int __thiscall CIisMapping::MappingGetField(unsigned long,unsigned char * *,unsigned long *,int)
?MappingGetField@CIisMapping@@UAEHKPAPAEPAKH@Z
; public: int __thiscall CIisAcctMapper::MappingGetFieldList(struct _IISMDB_Fields * *,unsigned long *)
?MappingGetFieldList@CIisAcctMapper@@QAEHPAPAU_IISMDB_Fields@@PAK@Z
; public: virtual int __thiscall CIisMapping::MappingSetField(unsigned long,char *)
?MappingSetField@CIisMapping@@UAEHKPAD@Z
; public: virtual int __thiscall CIisMapping::MappingSetField(unsigned long,unsigned char *,unsigned long,int)
?MappingSetField@CIisMapping@@UAEHKPAEKH@Z
; public: int __thiscall CCertMapRule::Match(class CDecodedCert *,class CDecodedCert *,char *,char *,int *)
?Match@CCertMapRule@@QAEHPAVCDecodedCert@@0PAD1PAH@Z
; public: int __thiscall CIisRuleMapper::Match(struct _CERT_CONTEXT *,struct _CERT_CONTEXT *,unsigned short *,unsigned short *)
?Match@CIisRuleMapper@@QAEHPAU_CERT_CONTEXT@@0PAG1@Z
; int __stdcall MatchRequestToBinary(char *,unsigned char * *,unsigned long *)
?MatchRequestToBinary@@YGHPADPAPAEPAK@Z
; public: int __thiscall CStoreXBF::Need(unsigned long)
?Need@CStoreXBF@@QAEHK@Z
; public: void __thiscall CIisRuleMapper::ReadLockRules(void)
?ReadLockRules@CIisRuleMapper@@QAEXXZ
; public: void __thiscall CIisRuleMapper::ReadUnlockRules(void)
?ReadUnlockRules@CIisRuleMapper@@QAEXXZ
; int __stdcall ReportIisMapEvent(unsigned short,unsigned long,unsigned short,char const * *)
?ReportIisMapEvent@@YGHGKGPAPBD@Z
; int __stdcall ReportIisMapEventW(unsigned short,unsigned long,unsigned short,unsigned short const * *)
?ReportIisMapEventW@@YGHGKGPAPBG@Z
; public: void __thiscall CAllocString::Reset(void)
?Reset@CAllocString@@QAEXXZ
; public: void __thiscall CBlob::Reset(void)
?Reset@CBlob@@QAEXXZ
; public: void __thiscall CBlobXBF::Reset(void)
?Reset@CBlobXBF@@QAEXXZ
; public: int __thiscall CCertGlobalRuleInfo::Reset(void)
?Reset@CCertGlobalRuleInfo@@QAEHXZ
; public: void __thiscall CCertMapRule::Reset(void)
?Reset@CCertMapRule@@QAEXXZ
; public: int __thiscall CIisAcctMapper::Reset(void)
?Reset@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CIisRuleMapper::Reset(void)
?Reset@CIisRuleMapper@@QAEHXZ
; public: void __thiscall CIssuerStore::Reset(void)
?Reset@CIssuerStore@@QAEXXZ
; public: void __thiscall CStoreXBF::Reset(void)
?Reset@CStoreXBF@@QAEXXZ
; public: int __thiscall CIisAcctMapper::Save(void)
?Save@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CStoreXBF::Save(void *)
?Save@CStoreXBF@@QAEHPAX@Z
; public: int __thiscall CAllocString::Serialize(class CStoreXBF *)
?Serialize@CAllocString@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CBlob::Serialize(class CStoreXBF *)
?Serialize@CBlob@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CBlobXBF::Serialize(class CStoreXBF *)
?Serialize@CBlobXBF@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CCertMapRule::Serialize(class CStoreXBF *)
?Serialize@CCertMapRule@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIisAcctMapper::Serialize(class CStoreXBF *)
?Serialize@CIisAcctMapper@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIisAcctMapper::Serialize(void)
?Serialize@CIisAcctMapper@@QAEHXZ
; public: virtual int __thiscall CIisMapping::Serialize(struct _iobuf *,void *,void *)
?Serialize@CIisMapping@@UAEHPAU_iobuf@@PAX1@Z
; public: int __thiscall CIisRuleMapper::Serialize(class CStoreXBF *)
?Serialize@CIisRuleMapper@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIssuerStore::Serialize(class CStoreXBF *)
?Serialize@CIssuerStore@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CPtrDwordXBF::Serialize(class CStoreXBF *)
?Serialize@CPtrDwordXBF@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CPtrXBF::Serialize(class CStoreXBF *)
?Serialize@CPtrXBF@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CStrPtrXBF::Serialize(class CStoreXBF *)
?Serialize@CStrPtrXBF@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CCertGlobalRuleInfo::SerializeGlobalRuleInfo(class CStoreXBF *)
?SerializeGlobalRuleInfo@CCertGlobalRuleInfo@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CAllocString::Set(char *)
?Set@CAllocString@@QAEHPAD@Z
; public: int __thiscall CBlob::Set(unsigned char *,unsigned long)
?Set@CBlob@@QAEHPAEK@Z
; public: int __thiscall CBlobXBF::SetEntry(unsigned long,unsigned char *,unsigned long)
?SetEntry@CBlobXBF@@QAEHKPAEK@Z
; public: int __thiscall CStrPtrXBF::SetEntry(unsigned long,char *)
?SetEntry@CStrPtrXBF@@QAEHKPAD@Z
; public: int __thiscall CCertMapRule::SetIssuerEntryAcceptStatus(unsigned long,int)
?SetIssuerEntryAcceptStatus@CCertMapRule@@QAEHKH@Z
; public: void __thiscall CCertMapRule::SetMatchAllIssuer(int)
?SetMatchAllIssuer@CCertMapRule@@QAEXH@Z
; public: int __thiscall CPtrDwordXBF::SetPtr(unsigned long,unsigned long)
?SetPtr@CPtrDwordXBF@@QAEHKK@Z
; public: int __thiscall CPtrXBF::SetPtr(unsigned long,void *)
?SetPtr@CPtrXBF@@QAEHKPAX@Z
; public: int __thiscall CCertMapRule::SetRuleAccount(char *)
?SetRuleAccount@CCertMapRule@@QAEHPAD@Z
; public: void __thiscall CCertMapRule::SetRuleDenyAccess(int)
?SetRuleDenyAccess@CCertMapRule@@QAEXH@Z
; public: void __thiscall CCertMapRule::SetRuleEnabled(int)
?SetRuleEnabled@CCertMapRule@@QAEXH@Z
; public: int __thiscall CCertMapRule::SetRuleName(char *)
?SetRuleName@CCertMapRule@@QAEHPAD@Z
; public: int __thiscall CCertMapRule::SetRulePassword(char *)
?SetRulePassword@CCertMapRule@@QAEHPAD@Z
; public: void __thiscall CCertGlobalRuleInfo::SetRulesEnabled(int)
?SetRulesEnabled@CCertGlobalRuleInfo@@QAEXH@Z
; public: void __thiscall CIisAcctMapper::Unlock(void)
?Unlock@CIisAcctMapper@@QAEXXZ
; public: int __thiscall CAllocString::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CAllocString@@QAEHPAPAEPAK@Z
; public: int __thiscall CBlob::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CBlob@@QAEHPAPAEPAK@Z
; public: int __thiscall CBlobXBF::Unserialize(unsigned char * *,unsigned long *,unsigned long)
?Unserialize@CBlobXBF@@QAEHPAPAEPAKK@Z
; public: int __thiscall CCertMapRule::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CCertMapRule@@QAEHPAPAEPAK@Z
; public: int __thiscall CCertMapRule::Unserialize(class CStoreXBF *)
?Unserialize@CCertMapRule@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIisAcctMapper::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CIisAcctMapper@@QAEHPAPAEPAK@Z
; public: int __thiscall CIisAcctMapper::Unserialize(class CStoreXBF *)
?Unserialize@CIisAcctMapper@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIisAcctMapper::Unserialize(void)
?Unserialize@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CIisRuleMapper::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CIisRuleMapper@@QAEHPAPAEPAK@Z
; public: int __thiscall CIisRuleMapper::Unserialize(class CStoreXBF *)
?Unserialize@CIisRuleMapper@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CIssuerStore::Unserialize(unsigned char * *,unsigned long *)
?Unserialize@CIssuerStore@@QAEHPAPAEPAK@Z
; public: int __thiscall CIssuerStore::Unserialize(class CStoreXBF *)
?Unserialize@CIssuerStore@@QAEHPAVCStoreXBF@@@Z
; public: int __thiscall CPtrDwordXBF::Unserialize(unsigned char * *,unsigned long *,unsigned long)
?Unserialize@CPtrDwordXBF@@QAEHPAPAEPAKK@Z
; public: int __thiscall CPtrXBF::Unserialize(unsigned char * *,unsigned long *,unsigned long)
?Unserialize@CPtrXBF@@QAEHPAPAEPAKK@Z
; public: int __thiscall CStrPtrXBF::Unserialize(unsigned char * *,unsigned long *,unsigned long)
?Unserialize@CStrPtrXBF@@QAEHPAPAEPAKK@Z
; public: int __thiscall CCertGlobalRuleInfo::UnserializeGlobalRuleInfo(unsigned char * *,unsigned long *)
?UnserializeGlobalRuleInfo@CCertGlobalRuleInfo@@QAEHPAPAEPAK@Z
; public: int __thiscall CIisAcctMapper::Update(unsigned long)
?Update@CIisAcctMapper@@QAEHK@Z
; public: int __thiscall CIisAcctMapper::Update(unsigned long,class CIisMapping *)
?Update@CIisAcctMapper@@QAEHKPAVCIisMapping@@@Z
; public: int __thiscall CIisAcctMapper::UpdateClasses(int)
?UpdateClasses@CIisAcctMapper@@QAEHH@Z
; public: int __thiscall CIisAcctMapper::UpdateHierarchy(void)
?UpdateHierarchy@CIisAcctMapper@@QAEHXZ
; public: int __thiscall CIisMapping::UpdateMask(struct _IISMDB_HEntry *,unsigned long)
?UpdateMask@CIisMapping@@QAEHPAU_IISMDB_HEntry@@K@Z
; public: void __thiscall CIisRuleMapper::WriteLockRules(void)
?WriteLockRules@CIisRuleMapper@@QAEXXZ
; public: void __thiscall CIisRuleMapper::WriteUnlockRules(void)
?WriteUnlockRules@CIisRuleMapper@@QAEXXZ
