; 
; 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: __thiscall CDac::CDac(class CDac const &)
??0CDac@@QAE@ABV0@@Z
; public: __thiscall CDac::CDac(unsigned long)
??0CDac@@QAE@K@Z
; public: __thiscall CDac::~CDac(void)
??1CDac@@QAE@XZ
; public: class CDac & __thiscall CDac::operator=(class CDac const &)
??4CDac@@QAEAAV0@ABV0@@Z
; public: int __thiscall CDac::Connect(struct HWND__ *,struct INTServiceControl *)
?Connect@CDac@@QAEHPAUHWND__@@PAUINTServiceControl@@@Z
; public: static long __stdcall CUicCore::Create(class CUicCore * *)
?Create@CUicCore@@SGJPAPAV1@@Z
; public: class CDialog * __thiscall CDac::CreateAdvancedPropertySheet(class CWnd *)
?CreateAdvancedPropertySheet@CDac@@QAEPAVCDialog@@PAVCWnd@@@Z
; public: int __thiscall CDac::ErrorMessage(unsigned long,unsigned int)
?ErrorMessage@CDac@@QAEHKI@Z
; public: unsigned long __thiscall CDac::GetAdminAccess(void)
?GetAdminAccess@CDac@@QAEKXZ
; public: char * __thiscall CDac::GetHostNameA(void)
?GetHostNameA@CDac@@QAEPADXZ
; public: unsigned short * __thiscall CDac::GetHostNameW(void)
?GetHostNameW@CDac@@QAEPAGXZ
; public: struct HWND__ * __thiscall CDac::GetOwnerHwnd(void)
?GetOwnerHwnd@CDac@@QAEPAUHWND__@@XZ
; public: unsigned short * __thiscall CDac::GetVirtualHostName(void)
?GetVirtualHostName@CDac@@QAEPAGXZ
; public: long __thiscall CDac::Init(unsigned short *)
?Init@CDac@@QAEJPAG@Z
; public: int __thiscall CDac::IsConnected(void)
?IsConnected@CDac@@QAEHXZ
; public: int __thiscall CDac::ProcessCommand(unsigned int,long)
?ProcessCommand@CDac@@QAEHIJ@Z
; void __stdcall RegisterErrorSink(struct IDacErrorSink *)
?RegisterErrorSink@@YGXPAUIDacErrorSink@@@Z
RunDACExe
; public: long __thiscall CDac::ServiceRequest(unsigned long,void *,unsigned long,bool)
?ServiceRequest@CDac@@QAEJKPAXK_N@Z
; public: void __thiscall CDac::SetHostNameA(char *)
?SetHostNameA@CDac@@QAEXPAD@Z
; public: void __thiscall CDac::SetHostNameW(unsigned short *)
?SetHostNameW@CDac@@QAEXPAG@Z
; public: void __thiscall CDac::SetOwnerWnd(class CWnd *)
?SetOwnerWnd@CDac@@QAEXPAVCWnd@@@Z
; class CDac * __stdcall ValidateDACInstance(void * *,unsigned short *)
?ValidateDACInstance@@YGPAVCDac@@PAPAXPAG@Z
DllGetClassObject
DllGetDTCUIC
DllRegisterServer
DllUnregisterServer
DtcPerfClose
DtcPerfCollect
DtcPerfOpen
PerfDllRegisterServer
ShutDownUIC
