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