; 
; Exports of file mmcbase.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY mmcbase.DLL
EXPORTS
; public: __cdecl CEventLock<struct AppEvents>::CEventLock<struct AppEvents>(void) __ptr64
??0?$CEventLock@UAppEvents@@@@QEAA@XZ
; public: __cdecl CEventBuffer::CEventBuffer(class CEventBuffer const & __ptr64) __ptr64
??0CEventBuffer@@QEAA@AEBV0@@Z
; public: __cdecl CEventBuffer::CEventBuffer(void) __ptr64
??0CEventBuffer@@QEAA@XZ
; private: __cdecl CMMCStrongReferences::CMMCStrongReferences(void) __ptr64
??0CMMCStrongReferences@@AEAA@XZ
; public: __cdecl mmcerror::SC::SC(long) __ptr64
??0SC@mmcerror@@QEAA@J@Z
; public: __cdecl CEventLock<struct AppEvents>::~CEventLock<struct AppEvents>(void) __ptr64
??1?$CEventLock@UAppEvents@@@@QEAA@XZ
; public: __cdecl CEventBuffer::~CEventBuffer(void) __ptr64
??1CEventBuffer@@QEAA@XZ
; public: class CEventLock<struct AppEvents> & __ptr64 __cdecl CEventLock<struct AppEvents>::operator=(class CEventLock<struct AppEvents> const & __ptr64) __ptr64
??4?$CEventLock@UAppEvents@@@@QEAAAEAV0@AEBV0@@Z
; public: class CEventBuffer & __ptr64 __cdecl CEventBuffer::operator=(class CEventBuffer const & __ptr64) __ptr64
??4CEventBuffer@@QEAAAEAV0@AEBV0@@Z
; public: class CMMCStrongReferences & __ptr64 __cdecl CMMCStrongReferences::operator=(class CMMCStrongReferences const & __ptr64) __ptr64
??4CMMCStrongReferences@@QEAAAEAV0@AEBV0@@Z
; public: class mmcerror::SC & __ptr64 __cdecl mmcerror::SC::operator=(class mmcerror::SC const & __ptr64) __ptr64
??4SC@mmcerror@@QEAAAEAV01@AEBV01@@Z
; public: class mmcerror::SC & __ptr64 __cdecl mmcerror::SC::operator=(long) __ptr64
??4SC@mmcerror@@QEAAAEAV01@J@Z
; public: int __cdecl mmcerror::SC::operator!(void)const  __ptr64
??7SC@mmcerror@@QEBAHXZ
; public: bool __cdecl mmcerror::SC::operator==(class mmcerror::SC const & __ptr64)const  __ptr64
??8SC@mmcerror@@QEBA_NAEBV01@@Z
; public: bool __cdecl mmcerror::SC::operator==(long)const  __ptr64
??8SC@mmcerror@@QEBA_NJ@Z
; public: bool __cdecl mmcerror::SC::operator!=(class mmcerror::SC const & __ptr64)const  __ptr64
??9SC@mmcerror@@QEBA_NAEBV01@@Z
; public: bool __cdecl mmcerror::SC::operator!=(long)const  __ptr64
??9SC@mmcerror@@QEBA_NJ@Z
; public: __cdecl mmcerror::SC::operator bool(void)const  __ptr64
??BSC@mmcerror@@QEBA_NXZ
; public: void __cdecl mmcerror::SC::`default constructor closure'(void) __ptr64
??_FSC@mmcerror@@QEAAXXZ
; public: static unsigned long __cdecl CMMCStrongReferences::AddRef(void)
?AddRef@CMMCStrongReferences@@SAKXZ
; public: void __cdecl mmcerror::SC::Clear(void) __ptr64
?Clear@SC@mmcerror@@QEAAXXZ
; public: void __cdecl mmcerror::SC::FatalError(void)const  __ptr64
?FatalError@SC@mmcerror@@QEBAXXZ
; void __cdecl FormatErrorIds(unsigned int,class mmcerror::SC,unsigned int,unsigned short * __ptr64)
?FormatErrorIds@@YAXIVSC@mmcerror@@IPEAG@Z
; void __cdecl FormatErrorShort(class mmcerror::SC,unsigned int,unsigned short * __ptr64)
?FormatErrorShort@@YAXVSC@mmcerror@@IPEAG@Z
; void __cdecl FormatErrorString(unsigned short const * __ptr64,class mmcerror::SC,unsigned int,unsigned short * __ptr64,int)
?FormatErrorString@@YAXPEBGVSC@mmcerror@@IPEAGH@Z
; public: class mmcerror::SC & __ptr64 __cdecl mmcerror::SC::FromLastError(void) __ptr64
?FromLastError@SC@mmcerror@@QEAAAEAV12@XZ
; public: class mmcerror::SC & __ptr64 __cdecl mmcerror::SC::FromMMC(long) __ptr64
?FromMMC@SC@mmcerror@@QEAAAEAV12@J@Z
; public: class mmcerror::SC & __ptr64 __cdecl mmcerror::SC::FromWin32(long) __ptr64
?FromWin32@SC@mmcerror@@QEAAAEAV12@J@Z
; public: long __cdecl mmcerror::SC::GetCode(void)const  __ptr64
?GetCode@SC@mmcerror@@QEBAJXZ
; class CEventSource<class CComObjectObserver,class CVoid,class CVoid,class CVoid,class CVoid> & __ptr64 __cdecl GetComObjectEventSource(void)
?GetComObjectEventSource@@YAAEAV?$CEventSource@VCComObjectObserver@@VCVoid@@V2@V2@V2@@@XZ
; public: void __cdecl mmcerror::SC::GetErrorMessage(unsigned int,unsigned short * __ptr64)const  __ptr64
?GetErrorMessage@SC@mmcerror@@QEBAXIPEAG@Z
; class CEventBuffer & __ptr64 __cdecl GetEventBuffer(void)
?GetEventBuffer@@YAAEAVCEventBuffer@@XZ
; private: enum mmcerror::SC::facility_type  __cdecl mmcerror::SC::GetFacility(void)const  __ptr64
?GetFacility@SC@mmcerror@@AEBA?AW4facility_type@12@XZ
; public: static struct HWND__ * __ptr64 __cdecl mmcerror::SC::GetHWnd(void)
?GetHWnd@SC@mmcerror@@SAPEAUHWND__@@XZ
; public: static unsigned short const * __ptr64 __cdecl mmcerror::SC::GetHelpFile(void)
?GetHelpFile@SC@mmcerror@@SAPEBGXZ
; public: unsigned long __cdecl mmcerror::SC::GetHelpID(void) __ptr64
?GetHelpID@SC@mmcerror@@QEAAKXZ
; public: static struct HINSTANCE__ * __ptr64 __cdecl mmcerror::SC::GetHinst(void)
?GetHinst@SC@mmcerror@@SAPEAUHINSTANCE__@@XZ
; public: static unsigned long __cdecl mmcerror::SC::GetMainThreadID(void)
?GetMainThreadID@SC@mmcerror@@SAKXZ
; private: static class CMMCStrongReferences & __ptr64 __cdecl CMMCStrongReferences::GetSingletonObject(void)
?GetSingletonObject@CMMCStrongReferences@@CAAEAV1@XZ
; struct HINSTANCE__ * __ptr64 __cdecl GetStringModule(void)
?GetStringModule@@YAPEAUHINSTANCE__@@XZ
; long __cdecl HrFromSc(class mmcerror::SC const & __ptr64)
?HrFromSc@@YAJAEBVSC@mmcerror@@@Z
; private: unsigned long __cdecl CMMCStrongReferences::InternalAddRef(void) __ptr64
?InternalAddRef@CMMCStrongReferences@@AEAAKXZ
; private: bool __cdecl CMMCStrongReferences::InternalLastRefReleased(void) __ptr64
?InternalLastRefReleased@CMMCStrongReferences@@AEAA_NXZ
; private: unsigned long __cdecl CMMCStrongReferences::InternalRelease(void) __ptr64
?InternalRelease@CMMCStrongReferences@@AEAAKXZ
; public: bool __cdecl mmcerror::SC::IsError(void)const  __ptr64
?IsError@SC@mmcerror@@QEBA_NXZ
; public: bool __cdecl CEventBuffer::IsLocked(void) __ptr64
?IsLocked@CEventBuffer@@QEAA_NXZ
; public: static bool __cdecl CMMCStrongReferences::LastRefReleased(void)
?LastRefReleased@CMMCStrongReferences@@SA_NXZ
; public: void __cdecl CEventBuffer::Lock(void) __ptr64
?Lock@CEventBuffer@@QEAAXXZ
; int __cdecl MMCErrorBox(unsigned int,unsigned int)
?MMCErrorBox@@YAHII@Z
; int __cdecl MMCErrorBox(unsigned int,class mmcerror::SC,unsigned int)
?MMCErrorBox@@YAHIVSC@mmcerror@@I@Z
; int __cdecl MMCErrorBox(unsigned short const * __ptr64,unsigned int)
?MMCErrorBox@@YAHPEBGI@Z
; int __cdecl MMCErrorBox(unsigned short const * __ptr64,class mmcerror::SC,unsigned int)
?MMCErrorBox@@YAHPEBGVSC@mmcerror@@I@Z
; int __cdecl MMCErrorBox(class mmcerror::SC,unsigned int)
?MMCErrorBox@@YAHVSC@mmcerror@@I@Z
; long __cdecl MMCUpdateRegistry(int,class CObjectRegParams const * __ptr64,class CControlRegParams const * __ptr64)
?MMCUpdateRegistry@@YAJHPEBVCObjectRegParams@@PEBVCControlRegParams@@@Z
; __int64 __cdecl MMC_PickIconDlg(struct HWND__ * __ptr64,unsigned short * __ptr64,unsigned int,int * __ptr64)
?MMC_PickIconDlg@@YA_JPEAUHWND__@@PEAGIPEAH@Z
; private: void __cdecl mmcerror::SC::MakeSc(enum mmcerror::SC::facility_type,long) __ptr64
?MakeSc@SC@mmcerror@@AEAAXW4facility_type@12@J@Z
; public: static unsigned long __cdecl CMMCStrongReferences::Release(void)
?Release@CMMCStrongReferences@@SAKXZ
; long __cdecl SCODEFromSc(class mmcerror::SC const & __ptr64)
?SCODEFromSc@@YAJAEBVSC@mmcerror@@@Z
; public: class mmcerror::SC  __cdecl CEventBuffer::ScEmitOrPostpone(struct IDispatch * __ptr64,long,class ATL::CComVariant * __ptr64,int) __ptr64
?ScEmitOrPostpone@CEventBuffer@@QEAA?AVSC@mmcerror@@PEAUIDispatch@@JPEAVCComVariant@ATL@@H@Z
; private: class mmcerror::SC  __cdecl CEventBuffer::ScFlushPostponed(void) __ptr64
?ScFlushPostponed@CEventBuffer@@AEAA?AVSC@mmcerror@@XZ
; class mmcerror::SC  __cdecl ScFromMMC(long)
?ScFromMMC@@YA?AVSC@mmcerror@@J@Z
; public: static class mmcerror::SC  __cdecl CConsoleEventDispatcherProvider::ScGetConsoleEventDispatcher(class CConsoleEventDispatcher * __ptr64 & __ptr64)
?ScGetConsoleEventDispatcher@CConsoleEventDispatcherProvider@@SA?AVSC@mmcerror@@AEAPEAVCConsoleEventDispatcher@@@Z
; public: static class mmcerror::SC  __cdecl CConsoleEventDispatcherProvider::ScSetConsoleEventDispatcher(class CConsoleEventDispatcher * __ptr64)
?ScSetConsoleEventDispatcher@CConsoleEventDispatcherProvider@@SA?AVSC@mmcerror@@PEAVCConsoleEventDispatcher@@@Z
; public: static void __cdecl mmcerror::SC::SetHWnd(struct HWND__ * __ptr64)
?SetHWnd@SC@mmcerror@@SAXPEAUHWND__@@@Z
; public: static void __cdecl mmcerror::SC::SetHinst(struct HINSTANCE__ * __ptr64)
?SetHinst@SC@mmcerror@@SAXPEAUHINSTANCE__@@@Z
; public: static void __cdecl mmcerror::SC::SetMainThreadID(unsigned long)
?SetMainThreadID@SC@mmcerror@@SAXK@Z
; public: void __cdecl mmcerror::SC::Throw(long) __ptr64
?Throw@SC@mmcerror@@QEAAXJ@Z
; public: void __cdecl mmcerror::SC::Throw(void) __ptr64
?Throw@SC@mmcerror@@QEAAXXZ
; public: long __cdecl mmcerror::SC::ToHr(void)const  __ptr64
?ToHr@SC@mmcerror@@QEBAJXZ
; public: void __cdecl mmcerror::SC::TraceAndClear(void) __ptr64
?TraceAndClear@SC@mmcerror@@QEAAXXZ
; public: void __cdecl mmcerror::SC::Trace_(void)const  __ptr64
?Trace_@SC@mmcerror@@QEBAXXZ
; public: void __cdecl CEventBuffer::Unlock(void) __ptr64
?Unlock@CEventBuffer@@QEAAXXZ
; private: static unsigned long  mmcerror::SC::s_dwMainThreadID
?s_dwMainThreadID@SC@mmcerror@@0KA DATA
; private: static struct HINSTANCE__ * __ptr64  __ptr64 mmcerror::SC::s_hInst
?s_hInst@SC@mmcerror@@0PEAUHINSTANCE__@@EA DATA
; private: static struct HWND__ * __ptr64  __ptr64 mmcerror::SC::s_hWnd
?s_hWnd@SC@mmcerror@@0PEAUHWND__@@EA DATA
; private: static class CConsoleEventDispatcher * __ptr64  __ptr64 CConsoleEventDispatcherProvider::s_pDispatcher
?s_pDispatcher@CConsoleEventDispatcherProvider@@0PEAVCConsoleEventDispatcher@@EA DATA
