; 
; Exports of file cmutil.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY cmutil.dll
EXPORTS
; public: __thiscall CIniA::CIniA(struct HINSTANCE__ *,char const *,char const *,char const *,char const *)
??0CIniA@@QAE@PAUHINSTANCE__@@PBD111@Z
; public: __thiscall CIniW::CIniW(struct HINSTANCE__ *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *)
??0CIniW@@QAE@PAUHINSTANCE__@@PBG111@Z
; public: __thiscall CRandom::CRandom(unsigned int)
??0CRandom@@QAE@I@Z
; public: __thiscall CRandom::CRandom(void)
??0CRandom@@QAE@XZ
; public: __thiscall CmLogFile::CmLogFile(void)
??0CmLogFile@@QAE@XZ
; public: __thiscall CIniA::~CIniA(void)
??1CIniA@@QAE@XZ
; public: __thiscall CIniW::~CIniW(void)
??1CIniW@@QAE@XZ
; public: __thiscall CmLogFile::~CmLogFile(void)
??1CmLogFile@@QAE@XZ
; public: class CIniA & __thiscall CIniA::operator=(class CIniA const &)
??4CIniA@@QAEAAV0@ABV0@@Z
; public: class CIniW & __thiscall CIniW::operator=(class CIniW const &)
??4CIniW@@QAEAAV0@ABV0@@Z
; public: class CRandom & __thiscall CRandom::operator=(class CRandom const &)
??4CRandom@@QAEAAV0@ABV0@@Z
; public: class CmLogFile & __thiscall CmLogFile::operator=(class CmLogFile const &)
??4CmLogFile@@QAEAAV0@ABV0@@Z
; public: void __thiscall CIniA::`default constructor closure'(void)
??_FCIniA@@QAEXXZ
; public: void __thiscall CIniW::`default constructor closure'(void)
??_FCIniW@@QAEXXZ
; public: void __thiscall CmLogFile::Banner(void)
?Banner@CmLogFile@@QAEXXZ
; protected: int __thiscall CIniA::CIniA_DeleteEntryFromReg(struct HKEY__ *,char const *,char const *)const 
?CIniA_DeleteEntryFromReg@CIniA@@IBEHPAUHKEY__@@PBD1@Z
; protected: unsigned char * __thiscall CIniA::CIniA_GetEntryFromReg(struct HKEY__ *,char const *,char const *,unsigned long,unsigned long)const 
?CIniA_GetEntryFromReg@CIniA@@IBEPAEPAUHKEY__@@PBD1KK@Z
; protected: int __thiscall CIniA::CIniA_WriteEntryToReg(struct HKEY__ *,char const *,char const *,unsigned char const *,unsigned long,unsigned long)const 
?CIniA_WriteEntryToReg@CIniA@@IBEHPAUHKEY__@@PBD1PBEKK@Z
; protected: int __thiscall CIniW::CIniW_DeleteEntryFromReg(struct HKEY__ *,unsigned short const *,unsigned short const *)const 
?CIniW_DeleteEntryFromReg@CIniW@@IBEHPAUHKEY__@@PBG1@Z
; protected: unsigned char * __thiscall CIniW::CIniW_GetEntryFromReg(struct HKEY__ *,unsigned short const *,unsigned short const *,unsigned long,unsigned long)const 
?CIniW_GetEntryFromReg@CIniW@@IBEPAEPAUHKEY__@@PBG1KK@Z
; protected: int __thiscall CIniW::CIniW_WriteEntryToReg(struct HKEY__ *,unsigned short const *,unsigned short const *,unsigned char const *,unsigned long,unsigned long)const 
?CIniW_WriteEntryToReg@CIniW@@IBEHPAUHKEY__@@PBG1PBEKK@Z
; protected: static void __stdcall CIniA::CIni_SetFile(char * *,char const *)
?CIni_SetFile@CIniA@@KGXPAPADPBD@Z
; protected: static void __stdcall CIniW::CIni_SetFile(unsigned short * *,unsigned short const *)
?CIni_SetFile@CIniW@@KGXPAPAGPBG@Z
; public: void __thiscall CIniA::Clear(void)
?Clear@CIniA@@QAEXXZ
; public: void __thiscall CIniW::Clear(void)
?Clear@CIniW@@QAEXXZ
; public: void __thiscall CmLogFile::Clear(int)
?Clear@CmLogFile@@QAEXH@Z
; private: long __thiscall CmLogFile::CloseFile(void)
?CloseFile@CmLogFile@@AAEJXZ
CmAtolA
CmAtolW
CmBuildFullPathFromRelativeA
CmBuildFullPathFromRelativeW
CmCompareStringA
CmCompareStringW
CmConvertRelativePathA
CmConvertRelativePathW
CmEndOfStrA
CmEndOfStrW
CmFmtMsgA
CmFmtMsgW
CmFree
CmIsDigitA
CmIsDigitW
CmIsSpaceA
CmIsSpaceW
CmLoadIconA
CmLoadIconW
CmLoadImage
CmLoadImageA
CmLoadImageW
CmLoadSmallIconA
CmLoadSmallIconW
CmLoadStringA
CmLoadStringW
CmMalloc
CmMoveMemory
CmParsePathA
CmParsePathW
CmRealloc
CmStrCatAllocA
CmStrCatAllocW
CmStrCpyAllocA
CmStrCpyAllocW
CmStrStrA
CmStrStrW
CmStrTrimA
CmStrTrimW
CmStrchrA
CmStrchrW
CmStripFileNameA
CmStripFileNameW
CmStripPathAndExtA
CmStripPathAndExtW
CmStrrchrA
CmStrrchrW
CmStrtokA
CmStrtokW
CmWinHelp
; public: long __thiscall CmLogFile::DeInit(void)
?DeInit@CmLogFile@@QAEJXZ
; private: void __thiscall CmLogFile::FormatWrite(enum _CMLOG_ITEM,unsigned short *)
?FormatWrite@CmLogFile@@AAEXW4_CMLOG_ITEM@@PAG@Z
; public: int __thiscall CIniA::GPPB(char const *,char const *,int)const 
?GPPB@CIniA@@QBEHPBD0H@Z
; public: int __thiscall CIniW::GPPB(unsigned short const *,unsigned short const *,int)const 
?GPPB@CIniW@@QBEHPBG0H@Z
; public: unsigned long __thiscall CIniA::GPPI(char const *,char const *,unsigned long)const 
?GPPI@CIniA@@QBEKPBD0K@Z
; public: unsigned long __thiscall CIniW::GPPI(unsigned short const *,unsigned short const *,unsigned long)const 
?GPPI@CIniW@@QBEKPBG0K@Z
; public: char * __thiscall CIniA::GPPS(char const *,char const *,char const *)const 
?GPPS@CIniA@@QBEPADPBD00@Z
; public: unsigned short * __thiscall CIniW::GPPS(unsigned short const *,unsigned short const *,unsigned short const *)const 
?GPPS@CIniW@@QBEPAGPBG00@Z
; public: int __thiscall CRandom::Generate(void)
?Generate@CRandom@@QAEHXZ
; public: char const * __thiscall CIniA::GetFile(void)const 
?GetFile@CIniA@@QBEPBDXZ
; public: unsigned short const * __thiscall CIniW::GetFile(void)const 
?GetFile@CIniW@@QBEPBGXZ
; public: struct HINSTANCE__ * __thiscall CIniA::GetHInst(void)const 
?GetHInst@CIniA@@QBEPAUHINSTANCE__@@XZ
; public: struct HINSTANCE__ * __thiscall CIniW::GetHInst(void)const 
?GetHInst@CIniW@@QBEPAUHINSTANCE__@@XZ
; public: unsigned short const * __thiscall CmLogFile::GetLogFilePath(void)
?GetLogFilePath@CmLogFile@@QAEPBGXZ
GetOSBuildNumber
GetOSMajorVersion
GetOSVersion
; public: char const * __thiscall CIniA::GetPrimaryFile(void)const 
?GetPrimaryFile@CIniA@@QBEPBDXZ
; public: unsigned short const * __thiscall CIniW::GetPrimaryFile(void)const 
?GetPrimaryFile@CIniW@@QBEPBGXZ
; public: char const * __thiscall CIniA::GetPrimaryRegPath(void)const 
?GetPrimaryRegPath@CIniA@@QBEPBDXZ
; public: unsigned short const * __thiscall CIniW::GetPrimaryRegPath(void)const 
?GetPrimaryRegPath@CIniW@@QBEPBGXZ
; public: char const * __thiscall CIniA::GetRegPath(void)const 
?GetRegPath@CIniA@@QBEPBDXZ
; public: unsigned short const * __thiscall CIniW::GetRegPath(void)const 
?GetRegPath@CIniW@@QBEPBGXZ
; public: char const * __thiscall CIniA::GetSection(void)const 
?GetSection@CIniA@@QBEPBDXZ
; public: unsigned short const * __thiscall CIniW::GetSection(void)const 
?GetSection@CIniW@@QBEPBGXZ
; public: void __thiscall CRandom::Init(unsigned long)
?Init@CRandom@@QAEXK@Z
; public: long __thiscall CmLogFile::Init(struct HINSTANCE__ *,int,char const *)
?Init@CmLogFile@@QAEJPAUHINSTANCE__@@HPBD@Z
; public: long __thiscall CmLogFile::Init(struct HINSTANCE__ *,int,unsigned short const *)
?Init@CmLogFile@@QAEJPAUHINSTANCE__@@HPBG@Z
; public: int __thiscall CmLogFile::IsEnabled(void)
?IsEnabled@CmLogFile@@QAEHXZ
IsFarEastNonOSR2Win95
IsLogonAsSystem
; protected: char * __thiscall CIniA::LoadEntry(char const *)const 
?LoadEntry@CIniA@@IBEPADPBD@Z
; protected: unsigned short * __thiscall CIniW::LoadEntry(unsigned short const *)const 
?LoadEntry@CIniW@@IBEPAGPBG@Z
; public: char * __thiscall CIniA::LoadSection(char const *)const 
?LoadSection@CIniA@@QBEPADPBD@Z
; public: unsigned short * __thiscall CIniW::LoadSection(unsigned short const *)const 
?LoadSection@CIniW@@QBEPAGPBG@Z
; public: void __cdecl CmLogFile::Log(enum _CMLOG_ITEM,...)
?Log@CmLogFile@@QAAXW4_CMLOG_ITEM@@ZZ
MakeBold
; private: long __thiscall CmLogFile::OpenFile(void)
?OpenFile@CmLogFile@@AAEJXZ
ReleaseBold
; public: void __thiscall CIniA::SetEntry(char const *)
?SetEntry@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetEntry(unsigned short const *)
?SetEntry@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetEntryFromIdx(unsigned long)
?SetEntryFromIdx@CIniA@@QAEXK@Z
; public: void __thiscall CIniW::SetEntryFromIdx(unsigned long)
?SetEntryFromIdx@CIniW@@QAEXK@Z
; public: void __thiscall CIniA::SetFile(char const *)
?SetFile@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetFile(unsigned short const *)
?SetFile@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetHInst(struct HINSTANCE__ *)
?SetHInst@CIniA@@QAEXPAUHINSTANCE__@@@Z
; public: void __thiscall CIniW::SetHInst(struct HINSTANCE__ *)
?SetHInst@CIniW@@QAEXPAUHINSTANCE__@@@Z
; public: void __thiscall CIniA::SetICSDataPath(char const *)
?SetICSDataPath@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetICSDataPath(unsigned short const *)
?SetICSDataPath@CIniW@@QAEXPBG@Z
; public: long __thiscall CmLogFile::SetParams(int,unsigned long,char const *)
?SetParams@CmLogFile@@QAEJHKPBD@Z
; public: long __thiscall CmLogFile::SetParams(int,unsigned long,unsigned short const *)
?SetParams@CmLogFile@@QAEJHKPBG@Z
; public: void __thiscall CIniA::SetPrimaryFile(char const *)
?SetPrimaryFile@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetPrimaryFile(unsigned short const *)
?SetPrimaryFile@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetPrimaryRegPath(char const *)
?SetPrimaryRegPath@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetPrimaryRegPath(unsigned short const *)
?SetPrimaryRegPath@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetReadICSData(int)
?SetReadICSData@CIniA@@QAEXH@Z
; public: void __thiscall CIniW::SetReadICSData(int)
?SetReadICSData@CIniW@@QAEXH@Z
; public: void __thiscall CIniA::SetRegPath(char const *)
?SetRegPath@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetRegPath(unsigned short const *)
?SetRegPath@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetSection(char const *)
?SetSection@CIniA@@QAEXPBD@Z
; public: void __thiscall CIniW::SetSection(unsigned short const *)
?SetSection@CIniW@@QAEXPBG@Z
; public: void __thiscall CIniA::SetWriteICSData(int)
?SetWriteICSData@CIniA@@QAEXH@Z
; public: void __thiscall CIniW::SetWriteICSData(int)
?SetWriteICSData@CIniW@@QAEXH@Z
; public: long __thiscall CmLogFile::Start(int)
?Start@CmLogFile@@QAEJH@Z
; public: long __thiscall CmLogFile::Stop(void)
?Stop@CmLogFile@@QAEJXZ
SzToWz
SzToWzWithAlloc
UpdateFont
; public: void __thiscall CIniA::WPPB(char const *,char const *,int)
?WPPB@CIniA@@QAEXPBD0H@Z
; public: void __thiscall CIniW::WPPB(unsigned short const *,unsigned short const *,int)
?WPPB@CIniW@@QAEXPBG0H@Z
; public: void __thiscall CIniA::WPPI(char const *,char const *,unsigned long)
?WPPI@CIniA@@QAEXPBD0K@Z
; public: void __thiscall CIniW::WPPI(unsigned short const *,unsigned short const *,unsigned long)
?WPPI@CIniW@@QAEXPBG0K@Z
; public: void __thiscall CIniA::WPPS(char const *,char const *,char const *)
?WPPS@CIniA@@QAEXPBD00@Z
; public: void __thiscall CIniW::WPPS(unsigned short const *,unsigned short const *,unsigned short const *)
?WPPS@CIniW@@QAEXPBG00@Z
; private: long __thiscall CmLogFile::Write(unsigned short *)
?Write@CmLogFile@@AAEJPAG@Z
WzToSz
WzToSzWithAlloc
