; 
; Exports of file cmutil.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY cmutil.dll
EXPORTS
; public: __cdecl CIniA::CIniA(struct HINSTANCE__ * __ptr64,char const * __ptr64,char const * __ptr64,char const * __ptr64,char const * __ptr64) __ptr64
??0CIniA@@QEAA@PEAUHINSTANCE__@@PEBD111@Z
; public: __cdecl CIniW::CIniW(struct HINSTANCE__ * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0CIniW@@QEAA@PEAUHINSTANCE__@@PEBG111@Z
; public: __cdecl CRandom::CRandom(unsigned int) __ptr64
??0CRandom@@QEAA@I@Z
; public: __cdecl CRandom::CRandom(void) __ptr64
??0CRandom@@QEAA@XZ
; public: __cdecl CmLogFile::CmLogFile(void) __ptr64
??0CmLogFile@@QEAA@XZ
; public: __cdecl CIniA::~CIniA(void) __ptr64
??1CIniA@@QEAA@XZ
; public: __cdecl CIniW::~CIniW(void) __ptr64
??1CIniW@@QEAA@XZ
; public: __cdecl CmLogFile::~CmLogFile(void) __ptr64
??1CmLogFile@@QEAA@XZ
; public: class CIniA & __ptr64 __cdecl CIniA::operator=(class CIniA const & __ptr64) __ptr64
??4CIniA@@QEAAAEAV0@AEBV0@@Z
; public: class CIniW & __ptr64 __cdecl CIniW::operator=(class CIniW const & __ptr64) __ptr64
??4CIniW@@QEAAAEAV0@AEBV0@@Z
; public: class CRandom & __ptr64 __cdecl CRandom::operator=(class CRandom const & __ptr64) __ptr64
??4CRandom@@QEAAAEAV0@AEBV0@@Z
; public: class CmLogFile & __ptr64 __cdecl CmLogFile::operator=(class CmLogFile const & __ptr64) __ptr64
??4CmLogFile@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl CIniA::`default constructor closure'(void) __ptr64
??_FCIniA@@QEAAXXZ
; public: void __cdecl CIniW::`default constructor closure'(void) __ptr64
??_FCIniW@@QEAAXXZ
; public: void __cdecl CmLogFile::Banner(void) __ptr64
?Banner@CmLogFile@@QEAAXXZ
; protected: int __cdecl CIniA::CIniA_DeleteEntryFromReg(struct HKEY__ * __ptr64,char const * __ptr64,char const * __ptr64)const  __ptr64
?CIniA_DeleteEntryFromReg@CIniA@@IEBAHPEAUHKEY__@@PEBD1@Z
; protected: unsigned char * __ptr64 __cdecl CIniA::CIniA_GetEntryFromReg(struct HKEY__ * __ptr64,char const * __ptr64,char const * __ptr64,unsigned long,unsigned long)const  __ptr64
?CIniA_GetEntryFromReg@CIniA@@IEBAPEAEPEAUHKEY__@@PEBD1KK@Z
; protected: int __cdecl CIniA::CIniA_WriteEntryToReg(struct HKEY__ * __ptr64,char const * __ptr64,char const * __ptr64,unsigned char const * __ptr64,unsigned long,unsigned long)const  __ptr64
?CIniA_WriteEntryToReg@CIniA@@IEBAHPEAUHKEY__@@PEBD1PEBEKK@Z
; protected: int __cdecl CIniW::CIniW_DeleteEntryFromReg(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)const  __ptr64
?CIniW_DeleteEntryFromReg@CIniW@@IEBAHPEAUHKEY__@@PEBG1@Z
; protected: unsigned char * __ptr64 __cdecl CIniW::CIniW_GetEntryFromReg(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long,unsigned long)const  __ptr64
?CIniW_GetEntryFromReg@CIniW@@IEBAPEAEPEAUHKEY__@@PEBG1KK@Z
; protected: int __cdecl CIniW::CIniW_WriteEntryToReg(struct HKEY__ * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned char const * __ptr64,unsigned long,unsigned long)const  __ptr64
?CIniW_WriteEntryToReg@CIniW@@IEBAHPEAUHKEY__@@PEBG1PEBEKK@Z
; protected: static void __cdecl CIniA::CIni_SetFile(char * __ptr64 * __ptr64,char const * __ptr64)
?CIni_SetFile@CIniA@@KAXPEAPEADPEBD@Z
; protected: static void __cdecl CIniW::CIni_SetFile(unsigned short * __ptr64 * __ptr64,unsigned short const * __ptr64)
?CIni_SetFile@CIniW@@KAXPEAPEAGPEBG@Z
; public: void __cdecl CIniA::Clear(void) __ptr64
?Clear@CIniA@@QEAAXXZ
; public: void __cdecl CIniW::Clear(void) __ptr64
?Clear@CIniW@@QEAAXXZ
; public: void __cdecl CmLogFile::Clear(int) __ptr64
?Clear@CmLogFile@@QEAAXH@Z
; private: long __cdecl CmLogFile::CloseFile(void) __ptr64
?CloseFile@CmLogFile@@AEAAJXZ
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
CmParsePathA
CmParsePathW
CmRealloc
CmStrCatAllocA
CmStrCatAllocW
CmStrCpyAllocA
CmStrCpyAllocW
CmStrStrA
CmStrStrW
CmStrTrimA
CmStrTrimW
CmStrchrA
CmStrchrW
CmStripFileNameA
CmStripFileNameW
CmStripPathAndExtA
CmStripPathAndExtW
CmStrrchrA
CmStrrchrW
CmStrtokA
CmStrtokW
CmWinHelp
; public: long __cdecl CmLogFile::DeInit(void) __ptr64
?DeInit@CmLogFile@@QEAAJXZ
; private: void __cdecl CmLogFile::FormatWrite(enum _CMLOG_ITEM,unsigned short * __ptr64) __ptr64
?FormatWrite@CmLogFile@@AEAAXW4_CMLOG_ITEM@@PEAG@Z
; public: int __cdecl CIniA::GPPB(char const * __ptr64,char const * __ptr64,int)const  __ptr64
?GPPB@CIniA@@QEBAHPEBD0H@Z
; public: int __cdecl CIniW::GPPB(unsigned short const * __ptr64,unsigned short const * __ptr64,int)const  __ptr64
?GPPB@CIniW@@QEBAHPEBG0H@Z
; public: unsigned long __cdecl CIniA::GPPI(char const * __ptr64,char const * __ptr64,unsigned long)const  __ptr64
?GPPI@CIniA@@QEBAKPEBD0K@Z
; public: unsigned long __cdecl CIniW::GPPI(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long)const  __ptr64
?GPPI@CIniW@@QEBAKPEBG0K@Z
; public: char * __ptr64 __cdecl CIniA::GPPS(char const * __ptr64,char const * __ptr64,char const * __ptr64)const  __ptr64
?GPPS@CIniA@@QEBAPEADPEBD00@Z
; public: unsigned short * __ptr64 __cdecl CIniW::GPPS(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64)const  __ptr64
?GPPS@CIniW@@QEBAPEAGPEBG00@Z
; public: int __cdecl CRandom::Generate(void) __ptr64
?Generate@CRandom@@QEAAHXZ
; public: char const * __ptr64 __cdecl CIniA::GetFile(void)const  __ptr64
?GetFile@CIniA@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CIniW::GetFile(void)const  __ptr64
?GetFile@CIniW@@QEBAPEBGXZ
; public: struct HINSTANCE__ * __ptr64 __cdecl CIniA::GetHInst(void)const  __ptr64
?GetHInst@CIniA@@QEBAPEAUHINSTANCE__@@XZ
; public: struct HINSTANCE__ * __ptr64 __cdecl CIniW::GetHInst(void)const  __ptr64
?GetHInst@CIniW@@QEBAPEAUHINSTANCE__@@XZ
; public: unsigned short const * __ptr64 __cdecl CmLogFile::GetLogFilePath(void) __ptr64
?GetLogFilePath@CmLogFile@@QEAAPEBGXZ
GetOSBuildNumber
GetOSMajorVersion
GetOSVersion
; public: char const * __ptr64 __cdecl CIniA::GetPrimaryFile(void)const  __ptr64
?GetPrimaryFile@CIniA@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CIniW::GetPrimaryFile(void)const  __ptr64
?GetPrimaryFile@CIniW@@QEBAPEBGXZ
; public: char const * __ptr64 __cdecl CIniA::GetPrimaryRegPath(void)const  __ptr64
?GetPrimaryRegPath@CIniA@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CIniW::GetPrimaryRegPath(void)const  __ptr64
?GetPrimaryRegPath@CIniW@@QEBAPEBGXZ
; public: char const * __ptr64 __cdecl CIniA::GetRegPath(void)const  __ptr64
?GetRegPath@CIniA@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CIniW::GetRegPath(void)const  __ptr64
?GetRegPath@CIniW@@QEBAPEBGXZ
; public: char const * __ptr64 __cdecl CIniA::GetSection(void)const  __ptr64
?GetSection@CIniA@@QEBAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl CIniW::GetSection(void)const  __ptr64
?GetSection@CIniW@@QEBAPEBGXZ
; public: void __cdecl CRandom::Init(unsigned long) __ptr64
?Init@CRandom@@QEAAXK@Z
; public: long __cdecl CmLogFile::Init(struct HINSTANCE__ * __ptr64,int,char const * __ptr64) __ptr64
?Init@CmLogFile@@QEAAJPEAUHINSTANCE__@@HPEBD@Z
; public: long __cdecl CmLogFile::Init(struct HINSTANCE__ * __ptr64,int,unsigned short const * __ptr64) __ptr64
?Init@CmLogFile@@QEAAJPEAUHINSTANCE__@@HPEBG@Z
; public: int __cdecl CmLogFile::IsEnabled(void) __ptr64
?IsEnabled@CmLogFile@@QEAAHXZ
IsFarEastNonOSR2Win95
IsLogonAsSystem
; protected: char * __ptr64 __cdecl CIniA::LoadEntry(char const * __ptr64)const  __ptr64
?LoadEntry@CIniA@@IEBAPEADPEBD@Z
; protected: unsigned short * __ptr64 __cdecl CIniW::LoadEntry(unsigned short const * __ptr64)const  __ptr64
?LoadEntry@CIniW@@IEBAPEAGPEBG@Z
; public: char * __ptr64 __cdecl CIniA::LoadSection(char const * __ptr64)const  __ptr64
?LoadSection@CIniA@@QEBAPEADPEBD@Z
; public: unsigned short * __ptr64 __cdecl CIniW::LoadSection(unsigned short const * __ptr64)const  __ptr64
?LoadSection@CIniW@@QEBAPEAGPEBG@Z
; public: void __cdecl CmLogFile::Log(enum _CMLOG_ITEM,...) __ptr64
?Log@CmLogFile@@QEAAXW4_CMLOG_ITEM@@ZZ
MakeBold
; private: long __cdecl CmLogFile::OpenFile(void) __ptr64
?OpenFile@CmLogFile@@AEAAJXZ
ReleaseBold
; public: void __cdecl CIniA::SetEntry(char const * __ptr64) __ptr64
?SetEntry@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetEntry(unsigned short const * __ptr64) __ptr64
?SetEntry@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetEntryFromIdx(unsigned long) __ptr64
?SetEntryFromIdx@CIniA@@QEAAXK@Z
; public: void __cdecl CIniW::SetEntryFromIdx(unsigned long) __ptr64
?SetEntryFromIdx@CIniW@@QEAAXK@Z
; public: void __cdecl CIniA::SetFile(char const * __ptr64) __ptr64
?SetFile@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetFile(unsigned short const * __ptr64) __ptr64
?SetFile@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetHInst(struct HINSTANCE__ * __ptr64) __ptr64
?SetHInst@CIniA@@QEAAXPEAUHINSTANCE__@@@Z
; public: void __cdecl CIniW::SetHInst(struct HINSTANCE__ * __ptr64) __ptr64
?SetHInst@CIniW@@QEAAXPEAUHINSTANCE__@@@Z
; public: void __cdecl CIniA::SetICSDataPath(char const * __ptr64) __ptr64
?SetICSDataPath@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetICSDataPath(unsigned short const * __ptr64) __ptr64
?SetICSDataPath@CIniW@@QEAAXPEBG@Z
; public: long __cdecl CmLogFile::SetParams(int,unsigned long,char const * __ptr64) __ptr64
?SetParams@CmLogFile@@QEAAJHKPEBD@Z
; public: long __cdecl CmLogFile::SetParams(int,unsigned long,unsigned short const * __ptr64) __ptr64
?SetParams@CmLogFile@@QEAAJHKPEBG@Z
; public: void __cdecl CIniA::SetPrimaryFile(char const * __ptr64) __ptr64
?SetPrimaryFile@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetPrimaryFile(unsigned short const * __ptr64) __ptr64
?SetPrimaryFile@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetPrimaryRegPath(char const * __ptr64) __ptr64
?SetPrimaryRegPath@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetPrimaryRegPath(unsigned short const * __ptr64) __ptr64
?SetPrimaryRegPath@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetReadICSData(int) __ptr64
?SetReadICSData@CIniA@@QEAAXH@Z
; public: void __cdecl CIniW::SetReadICSData(int) __ptr64
?SetReadICSData@CIniW@@QEAAXH@Z
; public: void __cdecl CIniA::SetRegPath(char const * __ptr64) __ptr64
?SetRegPath@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetRegPath(unsigned short const * __ptr64) __ptr64
?SetRegPath@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetSection(char const * __ptr64) __ptr64
?SetSection@CIniA@@QEAAXPEBD@Z
; public: void __cdecl CIniW::SetSection(unsigned short const * __ptr64) __ptr64
?SetSection@CIniW@@QEAAXPEBG@Z
; public: void __cdecl CIniA::SetWriteICSData(int) __ptr64
?SetWriteICSData@CIniA@@QEAAXH@Z
; public: void __cdecl CIniW::SetWriteICSData(int) __ptr64
?SetWriteICSData@CIniW@@QEAAXH@Z
; public: long __cdecl CmLogFile::Start(int) __ptr64
?Start@CmLogFile@@QEAAJH@Z
; public: long __cdecl CmLogFile::Stop(void) __ptr64
?Stop@CmLogFile@@QEAAJXZ
SzToWz
SzToWzWithAlloc
UpdateFont
; public: void __cdecl CIniA::WPPB(char const * __ptr64,char const * __ptr64,int) __ptr64
?WPPB@CIniA@@QEAAXPEBD0H@Z
; public: void __cdecl CIniW::WPPB(unsigned short const * __ptr64,unsigned short const * __ptr64,int) __ptr64
?WPPB@CIniW@@QEAAXPEBG0H@Z
; public: void __cdecl CIniA::WPPI(char const * __ptr64,char const * __ptr64,unsigned long) __ptr64
?WPPI@CIniA@@QEAAXPEBD0K@Z
; public: void __cdecl CIniW::WPPI(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned long) __ptr64
?WPPI@CIniW@@QEAAXPEBG0K@Z
; public: void __cdecl CIniA::WPPS(char const * __ptr64,char const * __ptr64,char const * __ptr64) __ptr64
?WPPS@CIniA@@QEAAXPEBD00@Z
; public: void __cdecl CIniW::WPPS(unsigned short const * __ptr64,unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?WPPS@CIniW@@QEAAXPEBG00@Z
; private: long __cdecl CmLogFile::Write(unsigned short * __ptr64) __ptr64
?Write@CmLogFile@@AEAAJPEAG@Z
WzToSz
WzToSzWithAlloc
