; 
; Exports of file DMDLGS.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY DMDLGS.dll
EXPORTS
; public: void __cdecl CDataCache::AddLDMObjMapEntry(struct _LDM_OBJ_MAP_ENTRY * __ptr64) __ptr64
?AddLDMObjMapEntry@CDataCache@@QEAAXPEAU_LDM_OBJ_MAP_ENTRY@@@Z
; void __cdecl FreeArrayOfStrings(struct arrayOfStrings * __ptr64)
?FreeArrayOfStrings@@YAXPEAUarrayOfStrings@@@Z
; public: unsigned long __cdecl CDataCache::GetDiskCount(void) __ptr64
?GetDiskCount@CDataCache@@QEAAKXZ
; public: __int64 __cdecl CDMNodeObj::GetLdmObjectId(void) __ptr64
?GetLdmObjectId@CDMNodeObj@@QEAA_JXZ
; public: unsigned long __cdecl CDMNodeObj::GetNumMembers(void) __ptr64
?GetNumMembers@CDMNodeObj@@QEAAKXZ
; public: class CWnd * __ptr64 __cdecl CTaskData::GetOcxFrameCWndPtr(void) __ptr64
?GetOcxFrameCWndPtr@CTaskData@@QEAAPEAVCWnd@@XZ
; public: void __cdecl CTaskData::GetRegionColorStructPtr(struct _REGION_COLORS * __ptr64 * __ptr64,int & __ptr64) __ptr64
?GetRegionColorStructPtr@CTaskData@@QEAAXPEAPEAU_REGION_COLORS@@AEAH@Z
; public: class CString  __cdecl CDataCache::GetServerName(void) __ptr64
?GetServerName@CDataCache@@QEAA?AVCString@@XZ
; public: unsigned long __cdecl CDataCache::GetVolumeCount(void) __ptr64
?GetVolumeCount@CDataCache@@QEAAKXZ
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
