; 
; Exports of file MSDTCUIU.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY MSDTCUIU.dll
EXPORTS
InitDACDLL
TermDACDLL
TermDACInstance
DoDACPropSheet
DoDACAdvanced
GetDACStatsMinMaxInfo
; public: __cdecl CDac::CDac(class CDac const & __ptr64) __ptr64
??0CDac@@QEAA@AEBV0@@Z
; public: __cdecl CDac::CDac(unsigned long) __ptr64
??0CDac@@QEAA@K@Z
; public: __cdecl CDac::~CDac(void) __ptr64
??1CDac@@QEAA@XZ
; public: class CDac & __ptr64 __cdecl CDac::operator=(class CDac const & __ptr64) __ptr64
??4CDac@@QEAAAEAV0@AEBV0@@Z
; public: int __cdecl CDac::Connect(struct HWND__ * __ptr64,struct INTServiceControl * __ptr64) __ptr64
?Connect@CDac@@QEAAHPEAUHWND__@@PEAUINTServiceControl@@@Z
; public: static long __cdecl CUicCore::Create(class CUicCore * __ptr64 * __ptr64)
?Create@CUicCore@@SAJPEAPEAV1@@Z
; public: class CDialog * __ptr64 __cdecl CDac::CreateAdvancedPropertySheet(class CWnd * __ptr64) __ptr64
?CreateAdvancedPropertySheet@CDac@@QEAAPEAVCDialog@@PEAVCWnd@@@Z
; public: int __cdecl CDac::ErrorMessage(unsigned long,unsigned int) __ptr64
?ErrorMessage@CDac@@QEAAHKI@Z
; public: unsigned long __cdecl CDac::GetAdminAccess(void) __ptr64
?GetAdminAccess@CDac@@QEAAKXZ
; public: char * __ptr64 __cdecl CDac::GetHostNameA(void) __ptr64
?GetHostNameA@CDac@@QEAAPEADXZ
; public: unsigned short * __ptr64 __cdecl CDac::GetHostNameW(void) __ptr64
?GetHostNameW@CDac@@QEAAPEAGXZ
; public: struct HWND__ * __ptr64 __cdecl CDac::GetOwnerHwnd(void) __ptr64
?GetOwnerHwnd@CDac@@QEAAPEAUHWND__@@XZ
; public: unsigned short * __ptr64 __cdecl CDac::GetVirtualHostName(void) __ptr64
?GetVirtualHostName@CDac@@QEAAPEAGXZ
; public: long __cdecl CDac::Init(unsigned short * __ptr64) __ptr64
?Init@CDac@@QEAAJPEAG@Z
; public: int __cdecl CDac::IsConnected(void) __ptr64
?IsConnected@CDac@@QEAAHXZ
; public: int __cdecl CDac::ProcessCommand(unsigned __int64,__int64) __ptr64
?ProcessCommand@CDac@@QEAAH_K_J@Z
; void __cdecl RegisterErrorSink(struct IDacErrorSink * __ptr64)
?RegisterErrorSink@@YAXPEAUIDacErrorSink@@@Z
RunDACExe
; public: long __cdecl CDac::ServiceRequest(unsigned long,void * __ptr64,unsigned long,bool) __ptr64
?ServiceRequest@CDac@@QEAAJKPEAXK_N@Z
; public: void __cdecl CDac::SetHostNameA(char * __ptr64) __ptr64
?SetHostNameA@CDac@@QEAAXPEAD@Z
; public: void __cdecl CDac::SetHostNameW(unsigned short * __ptr64) __ptr64
?SetHostNameW@CDac@@QEAAXPEAG@Z
; public: void __cdecl CDac::SetOwnerWnd(class CWnd * __ptr64) __ptr64
?SetOwnerWnd@CDac@@QEAAXPEAVCWnd@@@Z
; class CDac * __ptr64 __cdecl ValidateDACInstance(void * __ptr64 * __ptr64,unsigned short * __ptr64)
?ValidateDACInstance@@YAPEAVCDac@@PEAPEAXPEAG@Z
DllGetClassObject
DllGetDTCUIC
DllRegisterServer
DllUnregisterServer
DtcPerfClose
DtcPerfCollect
DtcPerfOpen
PerfDllRegisterServer
ShutDownUIC
