; 
; 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
