; 
; Exports of file vdsdyndr.DLL
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY vdsdyndr.DLL
EXPORTS
; public: __cdecl CPrvEnumObject::CPrvEnumObject(void) __ptr64
??0CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsCriticalSection::CVdsCriticalSection(struct _RTL_CRITICAL_SECTION * __ptr64) __ptr64
??0CVdsCriticalSection@@QEAA@PEAU_RTL_CRITICAL_SECTION@@@Z
; public: __cdecl CVdsPnPNotificationBase::CVdsPnPNotificationBase(void) __ptr64
??0CVdsPnPNotificationBase@@QEAA@XZ
; public: __cdecl CVdsStructuredExceptionTranslator::CVdsStructuredExceptionTranslator(void) __ptr64
??0CVdsStructuredExceptionTranslator@@QEAA@XZ
; public: __cdecl CVdsUnlockIt::CVdsUnlockIt(long & __ptr64) __ptr64
??0CVdsUnlockIt@@QEAA@AEAJ@Z
; public: __cdecl CPrvEnumObject::~CPrvEnumObject(void) __ptr64
??1CPrvEnumObject@@QEAA@XZ
; public: __cdecl CVdsCriticalSection::~CVdsCriticalSection(void) __ptr64
??1CVdsCriticalSection@@QEAA@XZ
; public: __cdecl CVdsDebugLog::~CVdsDebugLog(void) __ptr64
??1CVdsDebugLog@@QEAA@XZ
; public: __cdecl CVdsPnPNotificationBase::~CVdsPnPNotificationBase(void) __ptr64
??1CVdsPnPNotificationBase@@QEAA@XZ
; public: __cdecl CVdsStructuredExceptionTranslator::~CVdsStructuredExceptionTranslator(void) __ptr64
??1CVdsStructuredExceptionTranslator@@QEAA@XZ
; public: __cdecl CVdsUnlockIt::~CVdsUnlockIt(void) __ptr64
??1CVdsUnlockIt@@QEAA@XZ
; public: void __cdecl CVdsAsyncObjectBase::AllowCancel(void) __ptr64
?AllowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; public: void __cdecl CVdsAsyncObjectBase::DisallowCancel(void) __ptr64
?DisallowCancel@CVdsAsyncObjectBase@@QEAAXXZ
; public: enum __MIDL___MIDL_itf_vdsswprv_0000_0002  __cdecl CVdsAsyncObjectBase::GetOutputType(void) __ptr64
?GetOutputType@CVdsAsyncObjectBase@@QEAA?AW4__MIDL___MIDL_itf_vdsswprv_0000_0002@@XZ
; public: int __cdecl CVdsAsyncObjectBase::IsCancelRequested(void) __ptr64
?IsCancelRequested@CVdsAsyncObjectBase@@QEAAHXZ
; public: void __cdecl CVdsAsyncObjectBase::SetOutputType(enum __MIDL___MIDL_itf_vdsswprv_0000_0002) __ptr64
?SetOutputType@CVdsAsyncObjectBase@@QEAAXW4__MIDL___MIDL_itf_vdsswprv_0000_0002@@@Z
; public: void __cdecl CPrvEnumObject::SetPositionToLast(void) __ptr64
?SetPositionToLast@CPrvEnumObject@@QEAAXXZ
; public: int __cdecl CVdsDebugLog::TracingLogEnabled(void) __ptr64
?TracingLogEnabled@CVdsDebugLog@@QEAAHXZ
; public: void __cdecl CVdsAsyncObjectBase::ZeroAsyncOut(void) __ptr64
?ZeroAsyncOut@CVdsAsyncObjectBase@@QEAAXXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer
