;
; Definition file of cmutil.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
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::__dflt_ctor_closure(void)__ptr64 
??_FCIniA@@QEAAXXZ
; public: void __cdecl CIniW::__dflt_ctor_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
CmConvertStrToIPv6AddrA
CmConvertStrToIPv6AddrW
CmEndOfStrW
CmFmtMsgA
CmFmtMsgW
CmFree
CmIsDigitA
CmIsDigitW
CmIsIPv6AddressA
CmIsIPv6AddressW
CmIsSpaceA
CmIsSpaceW
CmLoadIconA
CmLoadIconW
CmLoadImageA
CmLoadImageW
CmLoadSmallIconA
CmLoadSmallIconW
CmLoadStringA
CmLoadStringW
CmMalloc
CmParsePathA
CmParsePathW
CmRealloc
CmStrCatAllocA
CmStrCatAllocW
CmStrCharCountA
CmStrCharCountW
CmStrCharStuffingA
CmStrCharStuffingW
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
; public: static unsigned long const CIniW::kMaxValueLength
?kMaxValueLength@CIniW@@2KB
