; 
; Exports of file mmcbase.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY mmcbase.DLL
EXPORTS
; public: __thiscall CEventLock<struct AppEvents>::CEventLock<struct AppEvents>(void)
??0?$CEventLock@UAppEvents@@@@QAE@XZ
; public: __thiscall CEventBuffer::CEventBuffer(class CEventBuffer const &)
??0CEventBuffer@@QAE@ABV0@@Z
; public: __thiscall CEventBuffer::CEventBuffer(void)
??0CEventBuffer@@QAE@XZ
; private: __thiscall CMMCStrongReferences::CMMCStrongReferences(void)
??0CMMCStrongReferences@@AAE@XZ
; public: __thiscall mmcerror::SC::SC(long)
??0SC@mmcerror@@QAE@J@Z
; public: __thiscall CEventLock<struct AppEvents>::~CEventLock<struct AppEvents>(void)
??1?$CEventLock@UAppEvents@@@@QAE@XZ
; public: __thiscall CEventBuffer::~CEventBuffer(void)
??1CEventBuffer@@QAE@XZ
; public: class CEventLock<struct AppEvents> & __thiscall CEventLock<struct AppEvents>::operator=(class CEventLock<struct AppEvents> const &)
??4?$CEventLock@UAppEvents@@@@QAEAAV0@ABV0@@Z
; public: class CEventBuffer & __thiscall CEventBuffer::operator=(class CEventBuffer const &)
??4CEventBuffer@@QAEAAV0@ABV0@@Z
; public: class CMMCStrongReferences & __thiscall CMMCStrongReferences::operator=(class CMMCStrongReferences const &)
??4CMMCStrongReferences@@QAEAAV0@ABV0@@Z
; public: class mmcerror::SC & __thiscall mmcerror::SC::operator=(class mmcerror::SC const &)
??4SC@mmcerror@@QAEAAV01@ABV01@@Z
; public: class mmcerror::SC & __thiscall mmcerror::SC::operator=(long)
??4SC@mmcerror@@QAEAAV01@J@Z
; public: int __thiscall mmcerror::SC::operator!(void)const 
??7SC@mmcerror@@QBEHXZ
; public: bool __thiscall mmcerror::SC::operator==(class mmcerror::SC const &)const 
??8SC@mmcerror@@QBE_NABV01@@Z
; public: bool __thiscall mmcerror::SC::operator==(long)const 
??8SC@mmcerror@@QBE_NJ@Z
; public: bool __thiscall mmcerror::SC::operator!=(class mmcerror::SC const &)const 
??9SC@mmcerror@@QBE_NABV01@@Z
; public: bool __thiscall mmcerror::SC::operator!=(long)const 
??9SC@mmcerror@@QBE_NJ@Z
; public: __thiscall mmcerror::SC::operator bool(void)const 
??BSC@mmcerror@@QBE_NXZ
; public: void __thiscall mmcerror::SC::`default constructor closure'(void)
??_FSC@mmcerror@@QAEXXZ
; public: static unsigned long __stdcall CMMCStrongReferences::AddRef(void)
?AddRef@CMMCStrongReferences@@SGKXZ
; public: void __thiscall mmcerror::SC::Clear(void)
?Clear@SC@mmcerror@@QAEXXZ
; public: void __thiscall mmcerror::SC::FatalError(void)const 
?FatalError@SC@mmcerror@@QBEXXZ
; void __stdcall FormatErrorIds(unsigned int,class mmcerror::SC,unsigned int,unsigned short *)
?FormatErrorIds@@YGXIVSC@mmcerror@@IPAG@Z
; void __stdcall FormatErrorShort(class mmcerror::SC,unsigned int,unsigned short *)
?FormatErrorShort@@YGXVSC@mmcerror@@IPAG@Z
; void __stdcall FormatErrorString(unsigned short const *,class mmcerror::SC,unsigned int,unsigned short *,int)
?FormatErrorString@@YGXPBGVSC@mmcerror@@IPAGH@Z
; public: class mmcerror::SC & __thiscall mmcerror::SC::FromLastError(void)
?FromLastError@SC@mmcerror@@QAEAAV12@XZ
; public: class mmcerror::SC & __thiscall mmcerror::SC::FromMMC(long)
?FromMMC@SC@mmcerror@@QAEAAV12@J@Z
; public: class mmcerror::SC & __thiscall mmcerror::SC::FromWin32(long)
?FromWin32@SC@mmcerror@@QAEAAV12@J@Z
; public: long __thiscall mmcerror::SC::GetCode(void)const 
?GetCode@SC@mmcerror@@QBEJXZ
; class CEventSource<class CComObjectObserver,class CVoid,class CVoid,class CVoid,class CVoid> & __stdcall GetComObjectEventSource(void)
?GetComObjectEventSource@@YGAAV?$CEventSource@VCComObjectObserver@@VCVoid@@V2@V2@V2@@@XZ
; public: void __thiscall mmcerror::SC::GetErrorMessage(unsigned int,unsigned short *)const 
?GetErrorMessage@SC@mmcerror@@QBEXIPAG@Z
; class CEventBuffer & __stdcall GetEventBuffer(void)
?GetEventBuffer@@YGAAVCEventBuffer@@XZ
; private: enum mmcerror::SC::facility_type  __thiscall mmcerror::SC::GetFacility(void)const 
?GetFacility@SC@mmcerror@@ABE?AW4facility_type@12@XZ
; public: static struct HWND__ * __stdcall mmcerror::SC::GetHWnd(void)
?GetHWnd@SC@mmcerror@@SGPAUHWND__@@XZ
; public: static unsigned short const * __stdcall mmcerror::SC::GetHelpFile(void)
?GetHelpFile@SC@mmcerror@@SGPBGXZ
; public: unsigned long __thiscall mmcerror::SC::GetHelpID(void)
?GetHelpID@SC@mmcerror@@QAEKXZ
; public: static struct HINSTANCE__ * __stdcall mmcerror::SC::GetHinst(void)
?GetHinst@SC@mmcerror@@SGPAUHINSTANCE__@@XZ
; public: static unsigned long __stdcall mmcerror::SC::GetMainThreadID(void)
?GetMainThreadID@SC@mmcerror@@SGKXZ
; private: static class CMMCStrongReferences & __stdcall CMMCStrongReferences::GetSingletonObject(void)
?GetSingletonObject@CMMCStrongReferences@@CGAAV1@XZ
; struct HINSTANCE__ * __stdcall GetStringModule(void)
?GetStringModule@@YGPAUHINSTANCE__@@XZ
; long __stdcall HrFromSc(class mmcerror::SC const &)
?HrFromSc@@YGJABVSC@mmcerror@@@Z
; private: unsigned long __thiscall CMMCStrongReferences::InternalAddRef(void)
?InternalAddRef@CMMCStrongReferences@@AAEKXZ
; private: bool __thiscall CMMCStrongReferences::InternalLastRefReleased(void)
?InternalLastRefReleased@CMMCStrongReferences@@AAE_NXZ
; private: unsigned long __thiscall CMMCStrongReferences::InternalRelease(void)
?InternalRelease@CMMCStrongReferences@@AAEKXZ
; public: bool __thiscall mmcerror::SC::IsError(void)const 
?IsError@SC@mmcerror@@QBE_NXZ
; public: bool __thiscall CEventBuffer::IsLocked(void)
?IsLocked@CEventBuffer@@QAE_NXZ
; public: static bool __stdcall CMMCStrongReferences::LastRefReleased(void)
?LastRefReleased@CMMCStrongReferences@@SG_NXZ
; public: void __thiscall CEventBuffer::Lock(void)
?Lock@CEventBuffer@@QAEXXZ
; int __stdcall MMCErrorBox(unsigned int,unsigned int)
?MMCErrorBox@@YGHII@Z
; int __stdcall MMCErrorBox(unsigned int,class mmcerror::SC,unsigned int)
?MMCErrorBox@@YGHIVSC@mmcerror@@I@Z
; int __stdcall MMCErrorBox(unsigned short const *,unsigned int)
?MMCErrorBox@@YGHPBGI@Z
; int __stdcall MMCErrorBox(unsigned short const *,class mmcerror::SC,unsigned int)
?MMCErrorBox@@YGHPBGVSC@mmcerror@@I@Z
; int __stdcall MMCErrorBox(class mmcerror::SC,unsigned int)
?MMCErrorBox@@YGHVSC@mmcerror@@I@Z
; long __stdcall MMCUpdateRegistry(int,class CObjectRegParams const *,class CControlRegParams const *)
?MMCUpdateRegistry@@YGJHPBVCObjectRegParams@@PBVCControlRegParams@@@Z
; int __stdcall MMC_PickIconDlg(struct HWND__ *,unsigned short *,unsigned int,int *)
?MMC_PickIconDlg@@YGHPAUHWND__@@PAGIPAH@Z
; private: void __thiscall mmcerror::SC::MakeSc(enum mmcerror::SC::facility_type,long)
?MakeSc@SC@mmcerror@@AAEXW4facility_type@12@J@Z
; public: static unsigned long __stdcall CMMCStrongReferences::Release(void)
?Release@CMMCStrongReferences@@SGKXZ
; long __stdcall SCODEFromSc(class mmcerror::SC const &)
?SCODEFromSc@@YGJABVSC@mmcerror@@@Z
; public: class mmcerror::SC  __thiscall CEventBuffer::ScEmitOrPostpone(struct IDispatch *,long,class ATL::CComVariant *,int)
?ScEmitOrPostpone@CEventBuffer@@QAE?AVSC@mmcerror@@PAUIDispatch@@JPAVCComVariant@ATL@@H@Z
; private: class mmcerror::SC  __thiscall CEventBuffer::ScFlushPostponed(void)
?ScFlushPostponed@CEventBuffer@@AAE?AVSC@mmcerror@@XZ
; class mmcerror::SC  __stdcall ScFromMMC(long)
?ScFromMMC@@YG?AVSC@mmcerror@@J@Z
; public: static class mmcerror::SC  __stdcall CConsoleEventDispatcherProvider::ScGetConsoleEventDispatcher(class CConsoleEventDispatcher * &)
?ScGetConsoleEventDispatcher@CConsoleEventDispatcherProvider@@SG?AVSC@mmcerror@@AAPAVCConsoleEventDispatcher@@@Z
; public: static class mmcerror::SC  __stdcall CConsoleEventDispatcherProvider::ScSetConsoleEventDispatcher(class CConsoleEventDispatcher *)
?ScSetConsoleEventDispatcher@CConsoleEventDispatcherProvider@@SG?AVSC@mmcerror@@PAVCConsoleEventDispatcher@@@Z
; public: static void __stdcall mmcerror::SC::SetHWnd(struct HWND__ *)
?SetHWnd@SC@mmcerror@@SGXPAUHWND__@@@Z
; public: static void __stdcall mmcerror::SC::SetHinst(struct HINSTANCE__ *)
?SetHinst@SC@mmcerror@@SGXPAUHINSTANCE__@@@Z
; public: static void __stdcall mmcerror::SC::SetMainThreadID(unsigned long)
?SetMainThreadID@SC@mmcerror@@SGXK@Z
; public: void __thiscall mmcerror::SC::Throw(long)
?Throw@SC@mmcerror@@QAEXJ@Z
; public: void __thiscall mmcerror::SC::Throw(void)
?Throw@SC@mmcerror@@QAEXXZ
; public: long __thiscall mmcerror::SC::ToHr(void)const 
?ToHr@SC@mmcerror@@QBEJXZ
; public: void __thiscall mmcerror::SC::TraceAndClear(void)
?TraceAndClear@SC@mmcerror@@QAEXXZ
; public: void __thiscall mmcerror::SC::Trace_(void)const 
?Trace_@SC@mmcerror@@QBEXXZ
; public: void __thiscall CEventBuffer::Unlock(void)
?Unlock@CEventBuffer@@QAEXXZ
; private: static unsigned long  mmcerror::SC::s_dwMainThreadID
?s_dwMainThreadID@SC@mmcerror@@0KA DATA
; private: static struct HINSTANCE__ *  mmcerror::SC::s_hInst
?s_hInst@SC@mmcerror@@0PAUHINSTANCE__@@A DATA
; private: static struct HWND__ *  mmcerror::SC::s_hWnd
?s_hWnd@SC@mmcerror@@0PAUHWND__@@A DATA
; private: static class CConsoleEventDispatcher *  CConsoleEventDispatcherProvider::s_pDispatcher
?s_pDispatcher@CConsoleEventDispatcherProvider@@0PAVCConsoleEventDispatcher@@A DATA
