; 
; 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
