; 
; Exports of file RWNH.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY RWNH.dll
EXPORTS
; public: __thiscall CCritSection::CCritSection(void)
??0CCritSection@@QAE@XZ
; public: __thiscall CShareLockExport::CShareLockExport(void)
??0CShareLockExport@@QAE@XZ
; public: __thiscall CShareLockNH::CShareLockNH(void)
??0CShareLockNH@@QAE@XZ
; public: __thiscall CSimpleCritSection::CSimpleCritSection(void)
??0CSimpleCritSection@@QAE@XZ
; public: __thiscall CCritSection::~CCritSection(void)
??1CCritSection@@QAE@XZ
; public: __thiscall CShareLockExport::~CShareLockExport(void)
??1CShareLockExport@@QAE@XZ
; public: __thiscall CShareLockNH::~CShareLockNH(void)
??1CShareLockNH@@QAE@XZ
; public: __thiscall CSimpleCritSection::~CSimpleCritSection(void)
??1CSimpleCritSection@@QAE@XZ
; public: class CShareLockExport & __thiscall CShareLockExport::operator=(class CShareLockExport const &)
??4CShareLockExport@@QAEAAV0@ABV0@@Z
; public: class CSimpleCritSection & __thiscall CSimpleCritSection::operator=(class CSimpleCritSection const &)
??4CSimpleCritSection@@QAEAAV0@ABV0@@Z
; public: void __thiscall CCritSection::Enter(class CWaitingThread &)
?Enter@CCritSection@@QAEXAAVCWaitingThread@@@Z
; public: void __thiscall CCritSection::Enter(void)
?Enter@CCritSection@@QAEXXZ
; public: void __thiscall CSimpleCritSection::Enter(class CWaitingThread &)
?Enter@CSimpleCritSection@@QAEXAAVCWaitingThread@@@Z
; public: void __thiscall CSimpleCritSection::Enter(void)
?Enter@CSimpleCritSection@@QAEXXZ
; public: void __thiscall CShareLockExport::ExclusiveLock(void)
?ExclusiveLock@CShareLockExport@@QAEXXZ
; public: void __thiscall CShareLockNH::ExclusiveLock(void)
?ExclusiveLock@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockNH::ExclusiveToPartial(void)
?ExclusiveToPartial@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockExport::ExclusiveToShared(void)
?ExclusiveToShared@CShareLockExport@@QAEXXZ
; public: void __thiscall CShareLockNH::ExclusiveToShared(void)
?ExclusiveToShared@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockExport::ExclusiveUnlock(void)
?ExclusiveUnlock@CShareLockExport@@QAEXXZ
; public: void __thiscall CShareLockNH::ExclusiveUnlock(void)
?ExclusiveUnlock@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockNH::FirstPartialToExclusive(void)
?FirstPartialToExclusive@CShareLockNH@@QAEXXZ
; void * __stdcall GetPerThreadEvent(void)
?GetPerThreadEvent@@YGPAXXZ
; public: void __thiscall CCritSection::Leave(void)
?Leave@CCritSection@@QAEXXZ
; public: void __thiscall CSimpleCritSection::Leave(void)
?Leave@CSimpleCritSection@@QAEXXZ
; public: void __thiscall CShareLockNH::PartialLock(void)
?PartialLock@CShareLockNH@@QAEXXZ
; public: int __thiscall CShareLockNH::PartialToExclusive(void)
?PartialToExclusive@CShareLockNH@@QAEHXZ
; public: void __thiscall CShareLockNH::PartialToShared(void)
?PartialToShared@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockNH::PartialUnlock(void)
?PartialUnlock@CShareLockNH@@QAEXXZ
; public: void __thiscall CShareLockExport::ShareLock(void)
?ShareLock@CShareLockExport@@QAEXXZ
; public: void __thiscall CShareLockNH::ShareLock(void)
?ShareLock@CShareLockNH@@QAEXXZ
; private: void __thiscall CShareLockNH::ShareLockInternal(void)
?ShareLockInternal@CShareLockNH@@AAEXXZ
; public: void __thiscall CShareLockExport::ShareUnlock(void)
?ShareUnlock@CShareLockExport@@QAEXXZ
; public: void __thiscall CShareLockNH::ShareUnlock(void)
?ShareUnlock@CShareLockNH@@QAEXXZ
; private: void __thiscall CShareLockNH::ShareUnlockInternal(void)
?ShareUnlockInternal@CShareLockNH@@AAEXXZ
; public: int __thiscall CShareLockExport::SharedToExclusive(void)
?SharedToExclusive@CShareLockExport@@QAEHXZ
; public: int __thiscall CShareLockNH::SharedToExclusive(void)
?SharedToExclusive@CShareLockNH@@QAEHXZ
; public: int __thiscall CShareLockNH::SharedToPartial(void)
?SharedToPartial@CShareLockNH@@QAEHXZ
; public: int __thiscall CCritSection::TryEnter(class CWaitingThread &)
?TryEnter@CCritSection@@QAEHAAVCWaitingThread@@@Z
; public: int __thiscall CCritSection::TryEnter(void)
?TryEnter@CCritSection@@QAEHXZ
; public: int __thiscall CSimpleCritSection::TryEnter(class CWaitingThread &)
?TryEnter@CSimpleCritSection@@QAEHAAVCWaitingThread@@@Z
; public: int __thiscall CSimpleCritSection::TryEnter(void)
?TryEnter@CSimpleCritSection@@QAEHXZ
; public: int __thiscall CShareLockExport::TryExclusiveLock(void)
?TryExclusiveLock@CShareLockExport@@QAEHXZ
; public: int __thiscall CShareLockNH::TryExclusiveLock(void)
?TryExclusiveLock@CShareLockNH@@QAEHXZ
; public: int __thiscall CShareLockNH::TryPartialLock(void)
?TryPartialLock@CShareLockNH@@QAEHXZ
; public: int __thiscall CShareLockExport::TryShareLock(void)
?TryShareLock@CShareLockExport@@QAEHXZ
; public: int __thiscall CShareLockNH::TryShareLock(void)
?TryShareLock@CShareLockNH@@QAEHXZ
; private: void __thiscall CShareLockNH::WakeReaders(void)
?WakeReaders@CShareLockNH@@AAEXXZ
