; 
; Exports of file NTMSDBA.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NTMSDBA.dll
EXPORTS
; public: __cdecl NtmsDbList::Map::Map(void) __ptr64
??0Map@NtmsDbList@@QEAA@XZ
; public: __cdecl NtmsDatabase::NtmsDatabase(class NtmsDatabase const & __ptr64) __ptr64
??0NtmsDatabase@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbChanger::NtmsDbChanger(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbChanger@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbChanger::NtmsDbChanger(void) __ptr64
??0NtmsDbChanger@@QEAA@XZ
; public: __cdecl NtmsDbChangerType::NtmsDbChangerType(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbChangerType@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbChangerType::NtmsDbChangerType(void) __ptr64
??0NtmsDbChangerType@@QEAA@XZ
; public: __cdecl NtmsDbComputer::NtmsDbComputer(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbComputer@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbComputer::NtmsDbComputer(void) __ptr64
??0NtmsDbComputer@@QEAA@XZ
; public: __cdecl NtmsDbDataCtxt::NtmsDbDataCtxt(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
??0NtmsDbDataCtxt@@QEAA@PEBG0@Z
; public: __cdecl NtmsDbDrive::NtmsDbDrive(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbDrive@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbDrive::NtmsDbDrive(void) __ptr64
??0NtmsDbDrive@@QEAA@XZ
; public: __cdecl NtmsDbDriveType::NtmsDbDriveType(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbDriveType@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbDriveType::NtmsDbDriveType(void) __ptr64
??0NtmsDbDriveType@@QEAA@XZ
; public: __cdecl NtmsDbError::NtmsDbError(void) __ptr64
??0NtmsDbError@@QEAA@XZ
; public: __cdecl NtmsDbFile::NtmsDbFile(class NtmsDbFile const & __ptr64) __ptr64
??0NtmsDbFile@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(struct _GUID const & __ptr64) __ptr64
??0NtmsDbGuid@@QEAA@AEBU_GUID@@@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbGuid@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(char const * __ptr64) __ptr64
??0NtmsDbGuid@@QEAA@PEBD@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(unsigned char const * __ptr64) __ptr64
??0NtmsDbGuid@@QEAA@PEBE@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(struct _GUID const * __ptr64) __ptr64
??0NtmsDbGuid@@QEAA@PEBU_GUID@@@Z
; public: __cdecl NtmsDbGuid::NtmsDbGuid(void) __ptr64
??0NtmsDbGuid@@QEAA@XZ
; public: __cdecl NtmsDbIEDoor::NtmsDbIEDoor(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbIEDoor@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbIEDoor::NtmsDbIEDoor(void) __ptr64
??0NtmsDbIEDoor@@QEAA@XZ
; public: __cdecl NtmsDbIEPort::NtmsDbIEPort(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbIEPort@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbIEPort::NtmsDbIEPort(void) __ptr64
??0NtmsDbIEPort@@QEAA@XZ
; public: __cdecl NtmsDbLibWorkItem::NtmsDbLibWorkItem(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbLibWorkItem@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbLibWorkItem::NtmsDbLibWorkItem(void) __ptr64
??0NtmsDbLibWorkItem@@QEAA@XZ
; public: __cdecl NtmsDbLibrary::NtmsDbLibrary(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbLibrary@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbLibrary::NtmsDbLibrary(void) __ptr64
??0NtmsDbLibrary@@QEAA@XZ
; public: __cdecl NtmsDbLinkedGuid::NtmsDbLinkedGuid(class NtmsDbLinkedGuid const & __ptr64) __ptr64
??0NtmsDbLinkedGuid@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbLinkedGuid::NtmsDbLinkedGuid(void) __ptr64
??0NtmsDbLinkedGuid@@QEAA@XZ
; public: __cdecl NtmsDbList::NtmsDbList(class NtmsDbList const & __ptr64) __ptr64
??0NtmsDbList@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbList::NtmsDbList(int) __ptr64
??0NtmsDbList@@QEAA@H@Z
; public: __cdecl NtmsDbLogicalMedia::NtmsDbLogicalMedia(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbLogicalMedia@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbLogicalMedia::NtmsDbLogicalMedia(void) __ptr64
??0NtmsDbLogicalMedia@@QEAA@XZ
; public: __cdecl NtmsDbMediaPool::NtmsDbMediaPool(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbMediaPool@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbMediaPool::NtmsDbMediaPool(void) __ptr64
??0NtmsDbMediaPool@@QEAA@XZ
; public: __cdecl NtmsDbMediaType::NtmsDbMediaType(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbMediaType@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbMediaType::NtmsDbMediaType(void) __ptr64
??0NtmsDbMediaType@@QEAA@XZ
; public: __cdecl NtmsDbObjTypeDef::NtmsDbObjTypeDef(char * __ptr64,char * __ptr64,unsigned long,unsigned long,class NtmsDbRecordType * __ptr64) __ptr64
??0NtmsDbObjTypeDef@@QEAA@PEAD0KKPEAVNtmsDbRecordType@@@Z
; public: __cdecl NtmsDbObject::NtmsDbObject(class NtmsDbObject const & __ptr64) __ptr64
??0NtmsDbObject@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbObject::NtmsDbObject(unsigned long) __ptr64
??0NtmsDbObject@@QEAA@K@Z
; public: __cdecl NtmsDbObject::NtmsDbObject(class NtmsDbDataCtxt * __ptr64,unsigned long,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbObject@@QEAA@PEAVNtmsDbDataCtxt@@KAEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbObject::NtmsDbObject(void) __ptr64
??0NtmsDbObject@@QEAA@XZ
; public: __cdecl NtmsDbOpRequest::NtmsDbOpRequest(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbOpRequest@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbOpRequest::NtmsDbOpRequest(void) __ptr64
??0NtmsDbOpRequest@@QEAA@XZ
; public: __cdecl NtmsDbPartition::NtmsDbPartition(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbPartition@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbPartition::NtmsDbPartition(void) __ptr64
??0NtmsDbPartition@@QEAA@XZ
; public: __cdecl NtmsDbPhysicalMedia::NtmsDbPhysicalMedia(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbPhysicalMedia@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbPhysicalMedia::NtmsDbPhysicalMedia(void) __ptr64
??0NtmsDbPhysicalMedia@@QEAA@XZ
; public: __cdecl NtmsDbPropBinary::NtmsDbPropBinary(void) __ptr64
??0NtmsDbPropBinary@@QEAA@XZ
; public: __cdecl NtmsDbPropChar::NtmsDbPropChar(void) __ptr64
??0NtmsDbPropChar@@QEAA@XZ
; public: __cdecl NtmsDbPropDataType::NtmsDbPropDataType(short) __ptr64
??0NtmsDbPropDataType@@QEAA@F@Z
; public: __cdecl NtmsDbPropDataType::NtmsDbPropDataType(void) __ptr64
??0NtmsDbPropDataType@@QEAA@XZ
; public: __cdecl NtmsDbPropDouble::NtmsDbPropDouble(void) __ptr64
??0NtmsDbPropDouble@@QEAA@XZ
; public: __cdecl NtmsDbPropGuid::NtmsDbPropGuid(void) __ptr64
??0NtmsDbPropGuid@@QEAA@XZ
; public: __cdecl NtmsDbPropHeader::NtmsDbPropHeader(void) __ptr64
??0NtmsDbPropHeader@@QEAA@XZ
; public: __cdecl NtmsDbPropLargeInt::NtmsDbPropLargeInt(void) __ptr64
??0NtmsDbPropLargeInt@@QEAA@XZ
; public: __cdecl NtmsDbPropLong::NtmsDbPropLong(void) __ptr64
??0NtmsDbPropLong@@QEAA@XZ
; public: __cdecl NtmsDbPropRelation::NtmsDbPropRelation(void) __ptr64
??0NtmsDbPropRelation@@QEAA@XZ
; public: __cdecl NtmsDbPropShort::NtmsDbPropShort(void) __ptr64
??0NtmsDbPropShort@@QEAA@XZ
; public: __cdecl NtmsDbPropTimeDate::NtmsDbPropTimeDate(void) __ptr64
??0NtmsDbPropTimeDate@@QEAA@XZ
; public: __cdecl NtmsDbProperty::NtmsDbProperty(class NtmsDbRecordProp * __ptr64) __ptr64
??0NtmsDbProperty@@QEAA@PEAVNtmsDbRecordProp@@@Z
; public: __cdecl NtmsDbProperty::NtmsDbProperty(void) __ptr64
??0NtmsDbProperty@@QEAA@XZ
; public: __cdecl NtmsDbPropertyValue::NtmsDbPropertyValue(long) __ptr64
??0NtmsDbPropertyValue@@QEAA@J@Z
; public: __cdecl NtmsDbPropertyValue::NtmsDbPropertyValue(class NtmsDbRecordPropList * __ptr64,long) __ptr64
??0NtmsDbPropertyValue@@QEAA@PEAVNtmsDbRecordPropList@@J@Z
; public: __cdecl NtmsDbRecordKey::NtmsDbRecordKey(class NtmsDbRecordKey const & __ptr64) __ptr64
??0NtmsDbRecordKey@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbRecordKey::NtmsDbRecordKey(class NtmsDbRecordType const & __ptr64) __ptr64
??0NtmsDbRecordKey@@QEAA@AEBVNtmsDbRecordType@@@Z
; public: __cdecl NtmsDbRecordKey::NtmsDbRecordKey(short,unsigned long) __ptr64
??0NtmsDbRecordKey@@QEAA@FK@Z
; public: __cdecl NtmsDbRecordKey::NtmsDbRecordKey(void) __ptr64
??0NtmsDbRecordKey@@QEAA@XZ
; public: __cdecl NtmsDbRecordKeyList::NtmsDbRecordKeyList(class NtmsDbRecordKeyList const & __ptr64) __ptr64
??0NtmsDbRecordKeyList@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbRecordKeyList::NtmsDbRecordKeyList(void) __ptr64
??0NtmsDbRecordKeyList@@QEAA@XZ
; public: __cdecl NtmsDbRecordProp::NtmsDbRecordProp(void) __ptr64
??0NtmsDbRecordProp@@QEAA@XZ
; public: __cdecl NtmsDbRecordPropList::NtmsDbRecordPropList(class NtmsDbRecordPropList const & __ptr64) __ptr64
??0NtmsDbRecordPropList@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbRecordPropList::NtmsDbRecordPropList(long) __ptr64
??0NtmsDbRecordPropList@@QEAA@J@Z
; public: __cdecl NtmsDbRecordPropList::NtmsDbRecordPropList(void) __ptr64
??0NtmsDbRecordPropList@@QEAA@XZ
; public: __cdecl NtmsDbRecordRev::NtmsDbRecordRev(unsigned long) __ptr64
??0NtmsDbRecordRev@@QEAA@K@Z
; public: __cdecl NtmsDbRecordRev::NtmsDbRecordRev(void) __ptr64
??0NtmsDbRecordRev@@QEAA@XZ
; public: __cdecl NtmsDbRecordType::NtmsDbRecordType(short) __ptr64
??0NtmsDbRecordType@@QEAA@F@Z
; public: __cdecl NtmsDbRecordType::NtmsDbRecordType(void) __ptr64
??0NtmsDbRecordType@@QEAA@XZ
; public: __cdecl NtmsDbRecordUniqueKey::NtmsDbRecordUniqueKey(class NtmsDbRecordUniqueKey const & __ptr64) __ptr64
??0NtmsDbRecordUniqueKey@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbRecordUniqueKey::NtmsDbRecordUniqueKey(class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbRecordUniqueKey@@QEAA@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbRecordUniqueKey::NtmsDbRecordUniqueKey(class NtmsDbRecordKey const & __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbRecordUniqueKey@@QEAA@AEBVNtmsDbRecordKey@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbRecordUniqueKey::NtmsDbRecordUniqueKey(void) __ptr64
??0NtmsDbRecordUniqueKey@@QEAA@XZ
; public: __cdecl NtmsDbSelectionSet::NtmsDbSelectionSet(class NtmsDbSelectionSet const & __ptr64) __ptr64
??0NtmsDbSelectionSet@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbSelectionSet::NtmsDbSelectionSet(class NtmsDbDataCtxt * __ptr64,unsigned long) __ptr64
??0NtmsDbSelectionSet@@QEAA@PEAVNtmsDbDataCtxt@@K@Z
; public: __cdecl NtmsDbSelectionSet::NtmsDbSelectionSet(void) __ptr64
??0NtmsDbSelectionSet@@QEAA@XZ
; public: __cdecl NtmsDbStorageSlot::NtmsDbStorageSlot(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbStorageSlot@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbStorageSlot::NtmsDbStorageSlot(void) __ptr64
??0NtmsDbStorageSlot@@QEAA@XZ
; public: __cdecl NtmsDbString::NtmsDbString(class NtmsDbString const & __ptr64) __ptr64
??0NtmsDbString@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbString::NtmsDbString(char const * __ptr64) __ptr64
??0NtmsDbString@@QEAA@PEBD@Z
; public: __cdecl NtmsDbString::NtmsDbString(void) __ptr64
??0NtmsDbString@@QEAA@XZ
; public: __cdecl NtmsDbString::NtmsDbString(unsigned __int64) __ptr64
??0NtmsDbString@@QEAA@_K@Z
; public: __cdecl NtmsDbTypeGuid::NtmsDbTypeGuid(struct _GUID const & __ptr64) __ptr64
??0NtmsDbTypeGuid@@QEAA@AEBU_GUID@@@Z
; public: __cdecl NtmsDbTypeGuid::NtmsDbTypeGuid(class NtmsDbTypeGuid const & __ptr64) __ptr64
??0NtmsDbTypeGuid@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbTypeGuid::NtmsDbTypeGuid(class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbTypeGuid@@QEAA@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbTypeGuid::NtmsDbTypeGuid(char const * __ptr64) __ptr64
??0NtmsDbTypeGuid@@QEAA@PEBD@Z
; public: __cdecl NtmsDbTypeGuid::NtmsDbTypeGuid(void) __ptr64
??0NtmsDbTypeGuid@@QEAA@XZ
; public: __cdecl NtmsDbUIDestination::NtmsDbUIDestination(class NtmsDbDataCtxt * __ptr64,class NtmsDbGuid const & __ptr64) __ptr64
??0NtmsDbUIDestination@@QEAA@PEAVNtmsDbDataCtxt@@AEBVNtmsDbGuid@@@Z
; public: __cdecl NtmsDbUIDestination::NtmsDbUIDestination(void) __ptr64
??0NtmsDbUIDestination@@QEAA@XZ
; public: __cdecl NtmsPropMetaInfo::NtmsPropMetaInfo(long,char const * __ptr64) __ptr64
??0NtmsPropMetaInfo@@QEAA@JPEBD@Z
; public: __cdecl NtmsTransaction::NtmsTransaction(class NtmsTransaction const & __ptr64) __ptr64
??0NtmsTransaction@@QEAA@AEBV0@@Z
; public: __cdecl NtmsDbList::Map::~Map(void) __ptr64
??1Map@NtmsDbList@@QEAA@XZ
; public: virtual __cdecl NtmsDbChanger::~NtmsDbChanger(void) __ptr64
??1NtmsDbChanger@@UEAA@XZ
; public: virtual __cdecl NtmsDbChangerType::~NtmsDbChangerType(void) __ptr64
??1NtmsDbChangerType@@UEAA@XZ
; public: virtual __cdecl NtmsDbComputer::~NtmsDbComputer(void) __ptr64
??1NtmsDbComputer@@UEAA@XZ
; public: __cdecl NtmsDbDataCtxt::~NtmsDbDataCtxt(void) __ptr64
??1NtmsDbDataCtxt@@QEAA@XZ
; public: virtual __cdecl NtmsDbDrive::~NtmsDbDrive(void) __ptr64
??1NtmsDbDrive@@UEAA@XZ
; public: virtual __cdecl NtmsDbDriveType::~NtmsDbDriveType(void) __ptr64
??1NtmsDbDriveType@@UEAA@XZ
; public: virtual __cdecl NtmsDbIEDoor::~NtmsDbIEDoor(void) __ptr64
??1NtmsDbIEDoor@@UEAA@XZ
; public: virtual __cdecl NtmsDbIEPort::~NtmsDbIEPort(void) __ptr64
??1NtmsDbIEPort@@UEAA@XZ
; public: virtual __cdecl NtmsDbLibWorkItem::~NtmsDbLibWorkItem(void) __ptr64
??1NtmsDbLibWorkItem@@UEAA@XZ
; public: virtual __cdecl NtmsDbLibrary::~NtmsDbLibrary(void) __ptr64
??1NtmsDbLibrary@@UEAA@XZ
; public: __cdecl NtmsDbLinkedGuid::~NtmsDbLinkedGuid(void) __ptr64
??1NtmsDbLinkedGuid@@QEAA@XZ
; public: virtual __cdecl NtmsDbList::~NtmsDbList(void) __ptr64
??1NtmsDbList@@UEAA@XZ
; public: virtual __cdecl NtmsDbLogicalMedia::~NtmsDbLogicalMedia(void) __ptr64
??1NtmsDbLogicalMedia@@UEAA@XZ
; public: virtual __cdecl NtmsDbMediaPool::~NtmsDbMediaPool(void) __ptr64
??1NtmsDbMediaPool@@UEAA@XZ
; public: virtual __cdecl NtmsDbMediaType::~NtmsDbMediaType(void) __ptr64
??1NtmsDbMediaType@@UEAA@XZ
; public: virtual __cdecl NtmsDbObject::~NtmsDbObject(void) __ptr64
??1NtmsDbObject@@UEAA@XZ
; public: virtual __cdecl NtmsDbOpRequest::~NtmsDbOpRequest(void) __ptr64
??1NtmsDbOpRequest@@UEAA@XZ
; public: virtual __cdecl NtmsDbPartition::~NtmsDbPartition(void) __ptr64
??1NtmsDbPartition@@UEAA@XZ
; public: virtual __cdecl NtmsDbPhysicalMedia::~NtmsDbPhysicalMedia(void) __ptr64
??1NtmsDbPhysicalMedia@@UEAA@XZ
; public: __cdecl NtmsDbPropBinary::~NtmsDbPropBinary(void) __ptr64
??1NtmsDbPropBinary@@QEAA@XZ
; public: __cdecl NtmsDbPropChar::~NtmsDbPropChar(void) __ptr64
??1NtmsDbPropChar@@QEAA@XZ
; public: __cdecl NtmsDbPropDouble::~NtmsDbPropDouble(void) __ptr64
??1NtmsDbPropDouble@@QEAA@XZ
; public: __cdecl NtmsDbPropGuid::~NtmsDbPropGuid(void) __ptr64
??1NtmsDbPropGuid@@QEAA@XZ
; public: __cdecl NtmsDbPropHeader::~NtmsDbPropHeader(void) __ptr64
??1NtmsDbPropHeader@@QEAA@XZ
; public: __cdecl NtmsDbPropLargeInt::~NtmsDbPropLargeInt(void) __ptr64
??1NtmsDbPropLargeInt@@QEAA@XZ
; public: __cdecl NtmsDbPropLong::~NtmsDbPropLong(void) __ptr64
??1NtmsDbPropLong@@QEAA@XZ
; public: __cdecl NtmsDbPropRecordClass::~NtmsDbPropRecordClass(void) __ptr64
??1NtmsDbPropRecordClass@@QEAA@XZ
; public: __cdecl NtmsDbPropRelation::~NtmsDbPropRelation(void) __ptr64
??1NtmsDbPropRelation@@QEAA@XZ
; public: __cdecl NtmsDbPropShort::~NtmsDbPropShort(void) __ptr64
??1NtmsDbPropShort@@QEAA@XZ
; public: __cdecl NtmsDbPropTimeDate::~NtmsDbPropTimeDate(void) __ptr64
??1NtmsDbPropTimeDate@@QEAA@XZ
; public: virtual __cdecl NtmsDbPropertyValue::~NtmsDbPropertyValue(void) __ptr64
??1NtmsDbPropertyValue@@UEAA@XZ
; public: virtual __cdecl NtmsDbRecordKeyList::~NtmsDbRecordKeyList(void) __ptr64
??1NtmsDbRecordKeyList@@UEAA@XZ
; public: __cdecl NtmsDbRecordProp::~NtmsDbRecordProp(void) __ptr64
??1NtmsDbRecordProp@@QEAA@XZ
; public: __cdecl NtmsDbRecordPropList::~NtmsDbRecordPropList(void) __ptr64
??1NtmsDbRecordPropList@@QEAA@XZ
; public: virtual __cdecl NtmsDbSelectionSet::~NtmsDbSelectionSet(void) __ptr64
??1NtmsDbSelectionSet@@UEAA@XZ
; public: virtual __cdecl NtmsDbStorageSlot::~NtmsDbStorageSlot(void) __ptr64
??1NtmsDbStorageSlot@@UEAA@XZ
; public: __cdecl NtmsDbString::~NtmsDbString(void) __ptr64
??1NtmsDbString@@QEAA@XZ
; public: virtual __cdecl NtmsDbUIDestination::~NtmsDbUIDestination(void) __ptr64
??1NtmsDbUIDestination@@UEAA@XZ
; public: class NtmsDbList::Map & __ptr64 __cdecl NtmsDbList::Map::operator=(class NtmsDbList::Map const & __ptr64) __ptr64
??4Map@NtmsDbList@@QEAAAEAV01@AEBV01@@Z
; public: class NtmsDatabase & __ptr64 __cdecl NtmsDatabase::operator=(class NtmsDatabase const & __ptr64) __ptr64
??4NtmsDatabase@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbChanger & __ptr64 __cdecl NtmsDbChanger::operator=(class NtmsDbChanger & __ptr64) __ptr64
??4NtmsDbChanger@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbChangerType & __ptr64 __cdecl NtmsDbChangerType::operator=(class NtmsDbChangerType & __ptr64) __ptr64
??4NtmsDbChangerType@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbComputer & __ptr64 __cdecl NtmsDbComputer::operator=(class NtmsDbComputer const & __ptr64) __ptr64
??4NtmsDbComputer@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbDataCtxt const & __ptr64 __cdecl NtmsDbDataCtxt::operator=(class NtmsDbDataCtxt const & __ptr64) __ptr64
??4NtmsDbDataCtxt@@QEAAAEBV0@AEBV0@@Z
; public: class NtmsDbDrive & __ptr64 __cdecl NtmsDbDrive::operator=(class NtmsDbDrive & __ptr64) __ptr64
??4NtmsDbDrive@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbDriveType & __ptr64 __cdecl NtmsDbDriveType::operator=(class NtmsDbDriveType & __ptr64) __ptr64
??4NtmsDbDriveType@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbError & __ptr64 __cdecl NtmsDbError::operator=(class NtmsDbError const & __ptr64) __ptr64
??4NtmsDbError@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbError & __ptr64 __cdecl NtmsDbError::operator=(unsigned long) __ptr64
??4NtmsDbError@@QEAAAEAV0@K@Z
; public: class NtmsDbFile & __ptr64 __cdecl NtmsDbFile::operator=(class NtmsDbFile const & __ptr64) __ptr64
??4NtmsDbFile@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbGuid::operator=(struct _GUID const & __ptr64) __ptr64
??4NtmsDbGuid@@QEAAAEAV0@AEBU_GUID@@@Z
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbGuid::operator=(class NtmsDbGuid const & __ptr64) __ptr64
??4NtmsDbGuid@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbGuid::operator=(char const * __ptr64) __ptr64
??4NtmsDbGuid@@QEAAAEAV0@PEBD@Z
; public: class NtmsDbIEDoor & __ptr64 __cdecl NtmsDbIEDoor::operator=(class NtmsDbIEDoor const & __ptr64) __ptr64
??4NtmsDbIEDoor@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbIEPort & __ptr64 __cdecl NtmsDbIEPort::operator=(class NtmsDbIEPort const & __ptr64) __ptr64
??4NtmsDbIEPort@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbLibWorkItem & __ptr64 __cdecl NtmsDbLibWorkItem::operator=(class NtmsDbLibWorkItem const & __ptr64) __ptr64
??4NtmsDbLibWorkItem@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbLibrary & __ptr64 __cdecl NtmsDbLibrary::operator=(class NtmsDbLibrary const & __ptr64) __ptr64
??4NtmsDbLibrary@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbLinkedGuid & __ptr64 __cdecl NtmsDbLinkedGuid::operator=(class NtmsDbLinkedGuid const & __ptr64) __ptr64
??4NtmsDbLinkedGuid@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbLinkedGuid::operator=(class NtmsDbGuid const & __ptr64) __ptr64
??4NtmsDbLinkedGuid@@QEAAAEAVNtmsDbGuid@@AEBV1@@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator=(class NtmsDbList const & __ptr64) __ptr64
??4NtmsDbList@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbListItem & __ptr64 __cdecl NtmsDbListItem::operator=(class NtmsDbListItem const & __ptr64) __ptr64
??4NtmsDbListItem@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbLogicalMedia & __ptr64 __cdecl NtmsDbLogicalMedia::operator=(class NtmsDbLogicalMedia const & __ptr64) __ptr64
??4NtmsDbLogicalMedia@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbMediaPool & __ptr64 __cdecl NtmsDbMediaPool::operator=(class NtmsDbMediaPool const & __ptr64) __ptr64
??4NtmsDbMediaPool@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbMediaType & __ptr64 __cdecl NtmsDbMediaType::operator=(class NtmsDbMediaType const & __ptr64) __ptr64
??4NtmsDbMediaType@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbObjTypeDef & __ptr64 __cdecl NtmsDbObjTypeDef::operator=(class NtmsDbObjTypeDef const & __ptr64) __ptr64
??4NtmsDbObjTypeDef@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbObject & __ptr64 __cdecl NtmsDbObject::operator=(class NtmsDbObject const & __ptr64) __ptr64
??4NtmsDbObject@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbOpRequest & __ptr64 __cdecl NtmsDbOpRequest::operator=(class NtmsDbOpRequest const & __ptr64) __ptr64
??4NtmsDbOpRequest@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPartition & __ptr64 __cdecl NtmsDbPartition::operator=(class NtmsDbPartition const & __ptr64) __ptr64
??4NtmsDbPartition@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPhysicalMedia & __ptr64 __cdecl NtmsDbPhysicalMedia::operator=(class NtmsDbPhysicalMedia & __ptr64) __ptr64
??4NtmsDbPhysicalMedia@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbPropBinary & __ptr64 __cdecl NtmsDbPropBinary::operator=(class NtmsDbPropBinary const & __ptr64) __ptr64
??4NtmsDbPropBinary@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropChar & __ptr64 __cdecl NtmsDbPropChar::operator=(class NtmsDbPropChar const & __ptr64) __ptr64
??4NtmsDbPropChar@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropDataType & __ptr64 __cdecl NtmsDbPropDataType::operator=(class NtmsDbPropDataType & __ptr64) __ptr64
??4NtmsDbPropDataType@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbPropDataType & __ptr64 __cdecl NtmsDbPropDataType::operator=(short) __ptr64
??4NtmsDbPropDataType@@QEAAAEAV0@F@Z
; public: class NtmsDbPropDouble & __ptr64 __cdecl NtmsDbPropDouble::operator=(class NtmsDbPropDouble const & __ptr64) __ptr64
??4NtmsDbPropDouble@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropGuid & __ptr64 __cdecl NtmsDbPropGuid::operator=(class NtmsDbPropGuid const & __ptr64) __ptr64
??4NtmsDbPropGuid@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropHeader const & __ptr64 __cdecl NtmsDbPropHeader::operator=(class NtmsDbPropHeader const & __ptr64) __ptr64
??4NtmsDbPropHeader@@QEAAAEBV0@AEBV0@@Z
; public: class NtmsDbPropLargeInt & __ptr64 __cdecl NtmsDbPropLargeInt::operator=(class NtmsDbPropLargeInt const & __ptr64) __ptr64
??4NtmsDbPropLargeInt@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropLong & __ptr64 __cdecl NtmsDbPropLong::operator=(class NtmsDbPropLong const & __ptr64) __ptr64
??4NtmsDbPropLong@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropRecordClass & __ptr64 __cdecl NtmsDbPropRecordClass::operator=(class NtmsDbPropRecordClass const & __ptr64) __ptr64
??4NtmsDbPropRecordClass@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropRelation & __ptr64 __cdecl NtmsDbPropRelation::operator=(class NtmsDbPropRelation & __ptr64) __ptr64
??4NtmsDbPropRelation@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbPropShort & __ptr64 __cdecl NtmsDbPropShort::operator=(class NtmsDbPropShort const & __ptr64) __ptr64
??4NtmsDbPropShort@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropTimeDate & __ptr64 __cdecl NtmsDbPropTimeDate::operator=(class NtmsDbPropTimeDate const & __ptr64) __ptr64
??4NtmsDbPropTimeDate@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbProperty & __ptr64 __cdecl NtmsDbProperty::operator=(class NtmsDbProperty const & __ptr64) __ptr64
??4NtmsDbProperty@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(short) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@F@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(unsigned short) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@G@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(int) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@H@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(unsigned int) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@I@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(long) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@J@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(unsigned long) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@K@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(float) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@M@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(double) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@N@Z
; public: class NtmsDbPropertyValue const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(char const * __ptr64) __ptr64
??4NtmsDbPropertyValue@@QEAAAEBV0@PEBD@Z
; public: virtual class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbPropertyValue::operator=(class NtmsDbGuid const & __ptr64) __ptr64
??4NtmsDbPropertyValue@@UEAAAEBVNtmsDbRecordProp@@AEBVNtmsDbGuid@@@Z
; public: class NtmsDbRecordKey & __ptr64 __cdecl NtmsDbRecordKey::operator=(class NtmsDbRecordType & __ptr64) __ptr64
??4NtmsDbRecordKey@@QEAAAEAV0@AEAVNtmsDbRecordType@@@Z
; public: class NtmsDbRecordKey & __ptr64 __cdecl NtmsDbRecordKey::operator=(class NtmsDbRecordKey const & __ptr64) __ptr64
??4NtmsDbRecordKey@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbRecordKey & __ptr64 __cdecl NtmsDbRecordKey::operator=(short) __ptr64
??4NtmsDbRecordKey@@QEAAAEAV0@F@Z
; public: class NtmsDbRecordKey & __ptr64 __cdecl NtmsDbRecordKey::operator=(unsigned long) __ptr64
??4NtmsDbRecordKey@@QEAAAEAV0@K@Z
; public: class NtmsDbRecordKeyList & __ptr64 __cdecl NtmsDbRecordKeyList::operator=(class NtmsDbRecordKeyList const & __ptr64) __ptr64
??4NtmsDbRecordKeyList@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(class NtmsDbRecordProp const & __ptr64) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@AEBV0@@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(class NtmsDbGuid const & __ptr64) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@AEBVNtmsDbGuid@@@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(short) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@F@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(unsigned short) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@G@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(int) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@H@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(unsigned int) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@I@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(long) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@J@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(unsigned long) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@K@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(float) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@M@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(double) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@N@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(unsigned short * __ptr64) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@PEAG@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(char const * __ptr64) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@PEBD@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(union _LARGE_INTEGER) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@T_LARGE_INTEGER@@@Z
; public: class NtmsDbRecordProp const & __ptr64 __cdecl NtmsDbRecordProp::operator=(struct _SYSTEMTIME) __ptr64
??4NtmsDbRecordProp@@QEAAAEBV0@U_SYSTEMTIME@@@Z
; public: class NtmsDbRecordPropList const & __ptr64 __cdecl NtmsDbRecordPropList::operator=(class NtmsDbRecordPropList const & __ptr64) __ptr64
??4NtmsDbRecordPropList@@QEAAAEBV0@AEBV0@@Z
; public: class NtmsDbRecordRev & __ptr64 __cdecl NtmsDbRecordRev::operator=(class NtmsDbRecordRev const & __ptr64) __ptr64
??4NtmsDbRecordRev@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbRecordType & __ptr64 __cdecl NtmsDbRecordType::operator=(class NtmsDbRecordType const & __ptr64) __ptr64
??4NtmsDbRecordType@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl NtmsDbRecordType::operator=(short) __ptr64
??4NtmsDbRecordType@@QEAAXF@Z
; public: class NtmsDbRecordUniqueKey const & __ptr64 __cdecl NtmsDbRecordUniqueKey::operator=(class NtmsDbRecordUniqueKey const & __ptr64) __ptr64
??4NtmsDbRecordUniqueKey@@QEAAAEBV0@AEBV0@@Z
; public: class NtmsDbSelectionSet & __ptr64 __cdecl NtmsDbSelectionSet::operator=(class NtmsDbSelectionSet const & __ptr64) __ptr64
??4NtmsDbSelectionSet@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbStorageSlot & __ptr64 __cdecl NtmsDbStorageSlot::operator=(class NtmsDbStorageSlot const & __ptr64) __ptr64
??4NtmsDbStorageSlot@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbString & __ptr64 __cdecl NtmsDbString::operator=(class NtmsDbString & __ptr64) __ptr64
??4NtmsDbString@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbString & __ptr64 __cdecl NtmsDbString::operator=(char const * __ptr64) __ptr64
??4NtmsDbString@@QEAAAEAV0@PEBD@Z
; public: class NtmsDbString & __ptr64 __cdecl NtmsDbString::operator=(unsigned short const * __ptr64) __ptr64
??4NtmsDbString@@QEAAAEAV0@PEBG@Z
; public: class NtmsDbTypeGuid & __ptr64 __cdecl NtmsDbTypeGuid::operator=(struct _GUID const & __ptr64) __ptr64
??4NtmsDbTypeGuid@@QEAAAEAV0@AEBU_GUID@@@Z
; public: class NtmsDbTypeGuid & __ptr64 __cdecl NtmsDbTypeGuid::operator=(class NtmsDbTypeGuid const & __ptr64) __ptr64
??4NtmsDbTypeGuid@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsDbUIDestination & __ptr64 __cdecl NtmsDbUIDestination::operator=(class NtmsDbUIDestination const & __ptr64) __ptr64
??4NtmsDbUIDestination@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsPropMetaInfo & __ptr64 __cdecl NtmsPropMetaInfo::operator=(class NtmsPropMetaInfo const & __ptr64) __ptr64
??4NtmsPropMetaInfo@@QEAAAEAV0@AEBV0@@Z
; public: class NtmsTransaction & __ptr64 __cdecl NtmsTransaction::operator=(class NtmsTransaction const & __ptr64) __ptr64
??4NtmsTransaction@@QEAAAEAV0@AEBV0@@Z
; public: void __cdecl NtmsDbList::operator>>(class NtmsDbListItem * __ptr64 & __ptr64) __ptr64
??5NtmsDbList@@QEAAXAEAPEAVNtmsDbListItem@@@Z
; public: void __cdecl NtmsDbPropRelation::operator>>(class NtmsDbRecordUniqueKey * __ptr64 & __ptr64) __ptr64
??5NtmsDbPropRelation@@QEAAXAEAPEAVNtmsDbRecordUniqueKey@@@Z
; public: void __cdecl NtmsDbRecordKeyList::operator>>(class NtmsDbRecordUniqueKey * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordKeyList@@QEAAXAEAPEAVNtmsDbRecordUniqueKey@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropChar * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropChar@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropGuid * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropGuid@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropLargeInt * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropLargeInt@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropLong * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropLong@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropRelation * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropRelation@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbPropShort * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbPropShort@@@Z
; public: void __cdecl NtmsDbRecordPropList::operator>>(class NtmsDbRecordProp * __ptr64 & __ptr64) __ptr64
??5NtmsDbRecordPropList@@QEAAXAEAPEAVNtmsDbRecordProp@@@Z
; public: void __cdecl NtmsDbList::operator<<(class NtmsDbListItem & __ptr64) __ptr64
??6NtmsDbList@@QEAAXAEAVNtmsDbListItem@@@Z
; public: void __cdecl NtmsDbPropRelation::operator<<(class NtmsDbRecordUniqueKey & __ptr64) __ptr64
??6NtmsDbPropRelation@@QEAAXAEAVNtmsDbRecordUniqueKey@@@Z
; public: void __cdecl NtmsDbRecordKeyList::operator<<(class NtmsDbRecordUniqueKey const & __ptr64) __ptr64
??6NtmsDbRecordKeyList@@QEAAXAEBVNtmsDbRecordUniqueKey@@@Z
; public: void __cdecl NtmsDbSelectionSet::operator<<(class NtmsDbGuid const & __ptr64) __ptr64
??6NtmsDbSelectionSet@@QEAAXAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbSelectionSet::operator<<(class NtmsDbRecordUniqueKey const & __ptr64) __ptr64
??6NtmsDbSelectionSet@@QEAAXAEBVNtmsDbRecordUniqueKey@@@Z
; public: int __cdecl NtmsDbGuid::operator==(struct _GUID const & __ptr64)const  __ptr64
??8NtmsDbGuid@@QEBAHAEBU_GUID@@@Z
; public: int __cdecl NtmsDbGuid::operator==(class NtmsDbGuid const & __ptr64)const  __ptr64
??8NtmsDbGuid@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbPropDataType::operator==(class NtmsDbPropDataType & __ptr64) __ptr64
??8NtmsDbPropDataType@@QEAAHAEAV0@@Z
; public: int __cdecl NtmsDbPropDataType::operator==(short) __ptr64
??8NtmsDbPropDataType@@QEAAHF@Z
; public: int __cdecl NtmsDbPropHeader::operator==(class NtmsDbPropHeader const & __ptr64)const  __ptr64
??8NtmsDbPropHeader@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordKey::operator==(class NtmsDbRecordKey const & __ptr64)const  __ptr64
??8NtmsDbRecordKey@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordRev::operator==(class NtmsDbRecordRev const & __ptr64) __ptr64
??8NtmsDbRecordRev@@QEAAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordUniqueKey::operator==(class NtmsDbGuid const & __ptr64)const  __ptr64
??8NtmsDbRecordUniqueKey@@QEBAHAEBVNtmsDbGuid@@@Z
; public: int __cdecl NtmsDbGuid::operator!=(struct _GUID const & __ptr64)const  __ptr64
??9NtmsDbGuid@@QEBAHAEBU_GUID@@@Z
; public: int __cdecl NtmsDbGuid::operator!=(class NtmsDbGuid const & __ptr64)const  __ptr64
??9NtmsDbGuid@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbPropDataType::operator!=(class NtmsDbPropDataType & __ptr64) __ptr64
??9NtmsDbPropDataType@@QEAAHAEAV0@@Z
; public: int __cdecl NtmsDbPropDataType::operator!=(short) __ptr64
??9NtmsDbPropDataType@@QEAAHF@Z
; public: int __cdecl NtmsDbPropHeader::operator!=(class NtmsDbPropHeader const & __ptr64)const  __ptr64
??9NtmsDbPropHeader@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordKey::operator!=(class NtmsDbRecordKey const & __ptr64)const  __ptr64
??9NtmsDbRecordKey@@QEBAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordRev::operator!=(class NtmsDbRecordRev const & __ptr64) __ptr64
??9NtmsDbRecordRev@@QEAAHAEBV0@@Z
; public: int __cdecl NtmsDbRecordUniqueKey::operator!=(class NtmsDbGuid const & __ptr64)const  __ptr64
??9NtmsDbRecordUniqueKey@@QEBAHAEBVNtmsDbGuid@@@Z
; public: class NtmsDbListItem * __ptr64 __cdecl NtmsDbList::operator[](long)const  __ptr64
??ANtmsDbList@@QEBAPEAVNtmsDbListItem@@J@Z
; public: class NtmsDbRecordUniqueKey * __ptr64 __cdecl NtmsDbRecordKeyList::operator[](long)const  __ptr64
??ANtmsDbRecordKeyList@@QEBAPEAVNtmsDbRecordUniqueKey@@J@Z
; public: class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbRecordPropList::operator[](long) __ptr64
??ANtmsDbRecordPropList@@QEAAPEAVNtmsDbRecordProp@@J@Z
; public: class NtmsDbRecordProp const * __ptr64 __cdecl NtmsDbRecordPropList::operator[](long)const  __ptr64
??ANtmsDbRecordPropList@@QEBAPEBVNtmsDbRecordProp@@J@Z
; public: __cdecl NtmsDbError::operator unsigned long(void)const  __ptr64
??BNtmsDbError@@QEBAKXZ
; public: __cdecl NtmsDbGuid::operator struct _GUID * __ptr64(void)const  __ptr64
??BNtmsDbGuid@@QEBAPEAU_GUID@@XZ
; public: __cdecl NtmsDbPropDataType::operator short(void)const  __ptr64
??BNtmsDbPropDataType@@QEBAFXZ
; public: __cdecl NtmsDbPropGuid::operator class NtmsDbGuid & __ptr64(void) __ptr64
??BNtmsDbPropGuid@@QEAAAEAVNtmsDbGuid@@XZ
; public: __cdecl NtmsDbPropRelation::operator class NtmsDbRecordKeyList * __ptr64(void) __ptr64
??BNtmsDbPropRelation@@QEAAPEAVNtmsDbRecordKeyList@@XZ
; public: __cdecl NtmsDbRecordProp::operator union _LARGE_INTEGER(void)const  __ptr64
??BNtmsDbRecordProp@@QEBA?AT_LARGE_INTEGER@@XZ
; public: __cdecl NtmsDbRecordProp::operator struct _SYSTEMTIME(void)const  __ptr64
??BNtmsDbRecordProp@@QEBA?AU_SYSTEMTIME@@XZ
; public: __cdecl NtmsDbRecordProp::operator class NtmsDbGuid(void)const  __ptr64
??BNtmsDbRecordProp@@QEBA?AVNtmsDbGuid@@XZ
; public: __cdecl NtmsDbRecordProp::operator short(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAFXZ
; public: __cdecl NtmsDbRecordProp::operator unsigned short(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAGXZ
; public: __cdecl NtmsDbRecordProp::operator long(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAJXZ
; public: __cdecl NtmsDbRecordProp::operator unsigned long(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAKXZ
; public: __cdecl NtmsDbRecordProp::operator float(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAMXZ
; public: __cdecl NtmsDbRecordProp::operator double(void)const  __ptr64
??BNtmsDbRecordProp@@QEBANXZ
; public: __cdecl NtmsDbRecordProp::operator unsigned short * __ptr64(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAPEAGXZ
; public: __cdecl NtmsDbRecordProp::operator char const * __ptr64(void)const  __ptr64
??BNtmsDbRecordProp@@QEBAPEBDXZ
; public: __cdecl NtmsDbRecordRev::operator unsigned long(void) __ptr64
??BNtmsDbRecordRev@@QEAAKXZ
; public: __cdecl NtmsDbRecordType::operator short(void)const  __ptr64
??BNtmsDbRecordType@@QEBAFXZ
; public: __cdecl NtmsDbRecordUniqueKey::operator class NtmsDbGuid & __ptr64(void) __ptr64
??BNtmsDbRecordUniqueKey@@QEAAAEAVNtmsDbGuid@@XZ
; public: __cdecl NtmsDbRecordUniqueKey::operator class NtmsDbGuid * __ptr64(void) __ptr64
??BNtmsDbRecordUniqueKey@@QEAAPEAVNtmsDbGuid@@XZ
; public: __cdecl NtmsDbRecordUniqueKey::operator class NtmsDbRecordKey * __ptr64(void) __ptr64
??BNtmsDbRecordUniqueKey@@QEAAPEAVNtmsDbRecordKey@@XZ
; public: __cdecl NtmsDbString::operator char const * __ptr64(void)const  __ptr64
??BNtmsDbString@@QEBAPEBDXZ
; public: __cdecl NtmsDbTypeGuid::operator class NtmsDbGuid & __ptr64(void) __ptr64
??BNtmsDbTypeGuid@@QEAAAEAVNtmsDbGuid@@XZ
; public: void __cdecl NtmsDbRecordRev::operator++(int) __ptr64
??ENtmsDbRecordRev@@QEAAXH@Z
; public: void __cdecl NtmsDbRecordRev::operator++(void) __ptr64
??ENtmsDbRecordRev@@QEAAXXZ
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator-(long) __ptr64
??GNtmsDbList@@QEAAAEAV0@J@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator-(class NtmsDbListItem * __ptr64) __ptr64
??GNtmsDbList@@QEAAAEAV0@PEAVNtmsDbListItem@@@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator+(class NtmsDbListItem * __ptr64) __ptr64
??HNtmsDbList@@QEAAAEAV0@PEAVNtmsDbListItem@@@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator+=(class NtmsDbListItem & __ptr64) __ptr64
??YNtmsDbList@@QEAAAEAV0@AEAVNtmsDbListItem@@@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator+=(class NtmsDbListItem * __ptr64) __ptr64
??YNtmsDbList@@QEAAAEAV0@PEAVNtmsDbListItem@@@Z
; public: class NtmsDbString & __ptr64 __cdecl NtmsDbString::operator+=(class NtmsDbString & __ptr64) __ptr64
??YNtmsDbString@@QEAAAEAV0@AEAV0@@Z
; public: class NtmsDbString & __ptr64 __cdecl NtmsDbString::operator+=(char const * __ptr64) __ptr64
??YNtmsDbString@@QEAAAEAV0@PEBD@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator-=(class NtmsDbListItem & __ptr64) __ptr64
??ZNtmsDbList@@QEAAAEAV0@AEAVNtmsDbListItem@@@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator-=(long) __ptr64
??ZNtmsDbList@@QEAAAEAV0@J@Z
; public: class NtmsDbList & __ptr64 __cdecl NtmsDbList::operator-=(class NtmsDbListItem * __ptr64) __ptr64
??ZNtmsDbList@@QEAAAEAV0@PEAVNtmsDbListItem@@@Z
; const  NtmsDatabase::`vftable'
??_7NtmsDatabase@@6B@
; const  NtmsDbChanger::`vftable'
??_7NtmsDbChanger@@6B@
; const  NtmsDbChangerType::`vftable'
??_7NtmsDbChangerType@@6B@
; const  NtmsDbComputer::`vftable'
??_7NtmsDbComputer@@6B@
; const  NtmsDbDrive::`vftable'
??_7NtmsDbDrive@@6B@
; const  NtmsDbDriveType::`vftable'
??_7NtmsDbDriveType@@6B@
; const  NtmsDbFile::`vftable'
??_7NtmsDbFile@@6B@
; const  NtmsDbIEDoor::`vftable'
??_7NtmsDbIEDoor@@6B@
; const  NtmsDbIEPort::`vftable'
??_7NtmsDbIEPort@@6B@
; const  NtmsDbLibWorkItem::`vftable'
??_7NtmsDbLibWorkItem@@6B@
; const  NtmsDbLibrary::`vftable'
??_7NtmsDbLibrary@@6B@
; const  NtmsDbList::`vftable'
??_7NtmsDbList@@6B@
; const  NtmsDbLogicalMedia::`vftable'
??_7NtmsDbLogicalMedia@@6B@
; const  NtmsDbMediaPool::`vftable'
??_7NtmsDbMediaPool@@6B@
; const  NtmsDbMediaType::`vftable'
??_7NtmsDbMediaType@@6B@
; const  NtmsDbObject::`vftable'
??_7NtmsDbObject@@6B@
; const  NtmsDbOpRequest::`vftable'
??_7NtmsDbOpRequest@@6B@
; const  NtmsDbPartition::`vftable'
??_7NtmsDbPartition@@6B@
; const  NtmsDbPhysicalMedia::`vftable'
??_7NtmsDbPhysicalMedia@@6B@
; const  NtmsDbPropertyValue::`vftable'
??_7NtmsDbPropertyValue@@6B@
; const  NtmsDbRecordKeyList::`vftable'
??_7NtmsDbRecordKeyList@@6B@
; const  NtmsDbSelectionSet::`vftable'
??_7NtmsDbSelectionSet@@6B@
; const  NtmsDbStorageSlot::`vftable'
??_7NtmsDbStorageSlot@@6B@
; const  NtmsDbUIDestination::`vftable'
??_7NtmsDbUIDestination@@6B@
; const  NtmsTransaction::`vftable'
??_7NtmsTransaction@@6B@
; public: void __cdecl NtmsDbDataCtxt::`default constructor closure'(void) __ptr64
??_FNtmsDbDataCtxt@@QEAAXXZ
; public: void __cdecl NtmsDbList::`default constructor closure'(void) __ptr64
??_FNtmsDbList@@QEAAXXZ
; public: unsigned long __cdecl NtmsDatabase::AccessAllowed(void) __ptr64
?AccessAllowed@NtmsDatabase@@QEAAKXZ
; public: static unsigned long __cdecl NtmsDbDataCtxt::AcquireChangeMutex(unsigned long)
?AcquireChangeMutex@NtmsDbDataCtxt@@SAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::AddMediaType(class NtmsDbGuid const & __ptr64) __ptr64
?AddMediaType@NtmsDbLibrary@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbComputer::AddUIDestination(unsigned long,class NtmsDbGuid const & __ptr64) __ptr64
?AddUIDestination@NtmsDbComputer@@QEAAKKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::AddUIDestination(unsigned long,class NtmsDbGuid const & __ptr64) __ptr64
?AddUIDestination@NtmsDbLibrary@@QEAAKKAEBVNtmsDbGuid@@@Z
; public: unsigned long const  __cdecl NtmsDbPartition::AllocateCount(void)const  __ptr64
?AllocateCount@NtmsDbPartition@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbMediaPool::AllocationPolicy(void)const  __ptr64
?AllocationPolicy@NtmsDbMediaPool@@QEBA?BKXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbLibWorkItem::Application(void)const  __ptr64
?Application@NtmsDbLibWorkItem@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbOpRequest::Application(void)const  __ptr64
?Application@NtmsDbOpRequest@@QEBAPEBGXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbOpRequest::Arg1(void)const  __ptr64
?Arg1@NtmsDbOpRequest@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbOpRequest::Arg1Type(void)const  __ptr64
?Arg1Type@NtmsDbOpRequest@@QEBAKXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbOpRequest::Arg2(void)const  __ptr64
?Arg2@NtmsDbOpRequest@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbOpRequest::Arg2Type(void)const  __ptr64
?Arg2Type@NtmsDbOpRequest@@QEBAKXZ
; public: long __cdecl NtmsDbLibWorkItem::AssocWorkItem_IsNotNull(void) __ptr64
?AssocWorkItem_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::AssocWorkItem_n(void)const  __ptr64
?AssocWorkItem_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: short const  __cdecl NtmsDbLibrary::AutoRecovery(void)const  __ptr64
?AutoRecovery@NtmsDbLibrary@@QEBA?BFXZ
; public: short const  __cdecl NtmsDbLibrary::BarCodeReader(void)const  __ptr64
?BarCodeReader@NtmsDbLibrary@@QEBA?BFXZ
; public: unsigned long const  __cdecl NtmsDbPhysicalMedia::BarcodeState(void)const  __ptr64
?BarcodeState@NtmsDbPhysicalMedia@@QEBA?BKXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbPhysicalMedia::BarcodeW(void)const  __ptr64
?BarcodeW@NtmsDbPhysicalMedia@@QEBAPEBGXZ
; public: long __cdecl NtmsDbPhysicalMedia::Barcode_IsNotNull(void) __ptr64
?Barcode_IsNotNull@NtmsDbPhysicalMedia@@QEAAJXZ
; public: char const * __ptr64 __cdecl NtmsDbPhysicalMedia::Barcode_n(void) __ptr64
?Barcode_n@NtmsDbPhysicalMedia@@QEAAPEBDXZ
; private: void __cdecl NtmsDbChanger::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbChanger@@AEAAXXZ
; private: void __cdecl NtmsDbChangerType::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbChangerType@@AEAAXXZ
; private: void __cdecl NtmsDbComputer::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbComputer@@AEAAXXZ
; private: void __cdecl NtmsDbDrive::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbDrive@@AEAAXXZ
; private: void __cdecl NtmsDbDriveType::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbDriveType@@AEAAXXZ
; private: void __cdecl NtmsDbIEDoor::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbIEDoor@@AEAAXXZ
; private: void __cdecl NtmsDbIEPort::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbIEPort@@AEAAXXZ
; private: void __cdecl NtmsDbLibWorkItem::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbLibWorkItem@@AEAAXXZ
; private: void __cdecl NtmsDbLibrary::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbLibrary@@AEAAXXZ
; private: void __cdecl NtmsDbLogicalMedia::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbLogicalMedia@@AEAAXXZ
; private: void __cdecl NtmsDbMediaPool::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbMediaPool@@AEAAXXZ
; private: void __cdecl NtmsDbMediaType::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbMediaType@@AEAAXXZ
; private: void __cdecl NtmsDbObject::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbObject@@AEAAXXZ
; private: void __cdecl NtmsDbOpRequest::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbOpRequest@@AEAAXXZ
; private: void __cdecl NtmsDbPartition::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbPartition@@AEAAXXZ
; private: void __cdecl NtmsDbPhysicalMedia::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbPhysicalMedia@@AEAAXXZ
; private: void __cdecl NtmsDbStorageSlot::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbStorageSlot@@AEAAXXZ
; private: void __cdecl NtmsDbUIDestination::BuildPropertyList(void) __ptr64
?BuildPropertyList@NtmsDbUIDestination@@AEAAXXZ
; public: union _LARGE_INTEGER & __ptr64 __cdecl NtmsDbPartition::Capacity(void) __ptr64
?Capacity@NtmsDbPartition@@QEAAAEAT_LARGE_INTEGER@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbChanger::ChangerType(void)const  __ptr64
?ChangerType@NtmsDbChanger@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbLibrary::Changers(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Changers@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: long __cdecl NtmsDbLibrary::CleanerSlot_IsNotNull(void)const  __ptr64
?CleanerSlot_IsNotNull@NtmsDbLibrary@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibrary::CleanerSlot_n(void)const  __ptr64
?CleanerSlot_n@NtmsDbLibrary@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbLibrary::CleansRemaining(void)const  __ptr64
?CleansRemaining@NtmsDbLibrary@@QEBA?BKXZ
; public: void __cdecl NtmsDbList::Clear(void) __ptr64
?Clear@NtmsDbList@@QEAAXXZ
; public: void __cdecl NtmsDbRecordProp::ClearModified(void) __ptr64
?ClearModified@NtmsDbRecordProp@@QEAAXXZ
; public: short const  __cdecl NtmsDbRecordProp::Code(void)const  __ptr64
?Code@NtmsDbRecordProp@@QEBA?BFXZ
; public: short __cdecl NtmsDbRecordType::Code(void)const  __ptr64
?Code@NtmsDbRecordType@@QEBAFXZ
; public: unsigned long __cdecl NtmsDbDataCtxt::CommitTransaction(void) __ptr64
?CommitTransaction@NtmsDbDataCtxt@@QEAAKXZ
; public: virtual void __cdecl NtmsDbObject::ComputeProps(enum NtmsDbObject::ObjectOperationType) __ptr64
?ComputeProps@NtmsDbObject@@UEAAXW4ObjectOperationType@1@@Z
; public: virtual void __cdecl NtmsDbObject::ComputeProps(enum NtmsDbObject::ObjectOperationType,long) __ptr64
?ComputeProps@NtmsDbObject@@UEAAXW4ObjectOperationType@1@J@Z
; public: unsigned short const * __ptr64 __cdecl NtmsDbLibWorkItem::Computer(void)const  __ptr64
?Computer@NtmsDbLibWorkItem@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbOpRequest::Computer(void)const  __ptr64
?Computer@NtmsDbOpRequest@@QEBAPEBGXZ
; public: long __cdecl NtmsDbDrive::Computer_IsNotNull(void)const  __ptr64
?Computer_IsNotNull@NtmsDbDrive@@QEBAJXZ
; public: long __cdecl NtmsDbLibrary::Computer_IsNotNull(void)const  __ptr64
?Computer_IsNotNull@NtmsDbLibrary@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbDrive::Computer_n(void)const  __ptr64
?Computer_n@NtmsDbDrive@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibrary::Computer_n(void)const  __ptr64
?Computer_n@NtmsDbLibrary@@QEBAAEBVNtmsDbGuid@@XZ
; protected: void __cdecl NtmsDbString::ConcatString(char const * __ptr64) __ptr64
?ConcatString@NtmsDbString@@IEAAXPEBD@Z
; public: unsigned long __cdecl NtmsDbDataCtxt::Connect(unsigned short const * __ptr64,unsigned short const * __ptr64) __ptr64
?Connect@NtmsDbDataCtxt@@QEAAKPEBG0@Z
; protected: void __cdecl NtmsDbString::ConvertMBString(unsigned short const * __ptr64,unsigned long,char * __ptr64 & __ptr64,unsigned __int64 & __ptr64) __ptr64
?ConvertMBString@NtmsDbString@@IEAAXPEBGKAEAPEADAEA_K@Z
; public: void __cdecl NtmsDbRecordProp::CopyData(void * __ptr64,long) __ptr64
?CopyData@NtmsDbRecordProp@@QEAAXPEAXJ@Z
; public: long __cdecl NtmsDbList::Count(void)const  __ptr64
?Count@NtmsDbList@@QEBAJXZ
; public: long __cdecl NtmsDbObject::Count(void)const  __ptr64
?Count@NtmsDbObject@@QEBAJXZ
; public: long __cdecl NtmsDbPropHeader::Count(void)const  __ptr64
?Count@NtmsDbPropHeader@@QEBAJXZ
; public: unsigned long __cdecl NtmsDbRecordProp::Count(void)const  __ptr64
?Count@NtmsDbRecordProp@@QEBAKXZ
; public: long __cdecl NtmsDbRecordPropList::Count(void)const  __ptr64
?Count@NtmsDbRecordPropList@@QEBAJXZ
; public: virtual long __cdecl NtmsDbSelectionSet::Count(void)const  __ptr64
?Count@NtmsDbSelectionSet@@UEBAJXZ
; public: struct _SYSTEMTIME  __cdecl NtmsDbObject::CreateTs(void)const  __ptr64
?CreateTs@NtmsDbObject@@QEBA?AU_SYSTEMTIME@@XZ
; public: unsigned long __cdecl NtmsDbRecordProp::DataSize(void)const  __ptr64
?DataSize@NtmsDbRecordProp@@QEBAKXZ
; public: class NtmsDatabase * __ptr64 __cdecl NtmsDbDataCtxt::Database(void) __ptr64
?Database@NtmsDbDataCtxt@@QEAAPEAVNtmsDatabase@@XZ
; public: unsigned long const  __cdecl NtmsDbMediaPool::DeallocationPolicy(void)const  __ptr64
?DeallocationPolicy@NtmsDbMediaPool@@QEBA?BKXZ
; public: void __cdecl NtmsDbPropHeader::DecCount(void) __ptr64
?DecCount@NtmsDbPropHeader@@QEAAXXZ
; public: long __cdecl NtmsDbUIDestination::DecReference(void) __ptr64
?DecReference@NtmsDbUIDestination@@QEAAJXZ
; public: long __cdecl NtmsDbLibrary::DefCleanerSlot_IsNotNull(void)const  __ptr64
?DefCleanerSlot_IsNotNull@NtmsDbLibrary@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibrary::DefCleanerSlot_n(void)const  __ptr64
?DefCleanerSlot_n@NtmsDbLibrary@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbDrive::DeferDelay(void)const  __ptr64
?DeferDelay@NtmsDbDrive@@QEBA?BKXZ
; protected: virtual void __cdecl NtmsDbChanger::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbChanger@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbChangerType::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbChangerType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbComputer::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbComputer@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDrive::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbDrive@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDriveType::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbDriveType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEDoor::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbIEDoor@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEPort::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbIEPort@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibWorkItem::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbLibWorkItem@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibrary::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbLibrary@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLogicalMedia::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbLogicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaPool::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbMediaPool@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaType::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbMediaType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbObject::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbObject@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbOpRequest::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbOpRequest@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPartition::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbPartition@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPhysicalMedia::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbPhysicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbStorageSlot::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbStorageSlot@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbUIDestination::DeleteDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteDbObject@NtmsDbUIDestination@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; public: virtual unsigned long __cdecl NtmsDbSelectionSet::DeleteObjects(class NtmsDbDataCtxt * __ptr64) __ptr64
?DeleteObjects@NtmsDbSelectionSet@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; protected: void __cdecl NtmsDbObject::DeleteReferences(class NtmsDbDataCtxt * __ptr64,class NtmsDbRecordPropList * __ptr64) __ptr64
?DeleteReferences@NtmsDbObject@@IEAAXPEAVNtmsDbDataCtxt@@PEAVNtmsDbRecordPropList@@@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::DensityCode(void) __ptr64
?DensityCode@NtmsDbPhysicalMedia@@QEAAKXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbObject::DescriptionW(void) __ptr64
?DescriptionW@NtmsDbObject@@QEAAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbObject::DescriptionW(void)const  __ptr64
?DescriptionW@NtmsDbObject@@QEBAPEBGXZ
; public: long __cdecl NtmsDbObject::Description_IsNotNull(void) __ptr64
?Description_IsNotNull@NtmsDbObject@@QEAAJXZ
; public: char const * __ptr64 __cdecl NtmsDbObject::Description_n(void) __ptr64
?Description_n@NtmsDbObject@@QEAAPEBDXZ
; public: static void __cdecl NtmsDbDataCtxt::DestroyMutex(void)
?DestroyMutex@NtmsDbDataCtxt@@SAXXZ
; public: virtual void __cdecl NtmsDbList::Destruct(class NtmsDbListItem * __ptr64) __ptr64
?Destruct@NtmsDbList@@UEAAXPEAVNtmsDbListItem@@@Z
; public: unsigned long const  __cdecl NtmsDbChangerType::DeviceType(void)const  __ptr64
?DeviceType@NtmsDbChangerType@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbMediaType::DeviceType(void)const  __ptr64
?DeviceType@NtmsDbMediaType@@QEBA?BKXZ
; public: static void __cdecl NtmsDbDataCtxt::DisableNotification(class ChangeRegistration * __ptr64)
?DisableNotification@NtmsDbDataCtxt@@SAXPEAVChangeRegistration@@@Z
; public: unsigned long __cdecl NtmsDbDataCtxt::Disconnect(void) __ptr64
?Disconnect@NtmsDbDataCtxt@@QEAAKXZ
; public: long __cdecl NtmsDbLibWorkItem::DriveId_IsNotNull(void) __ptr64
?DriveId_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::DriveId_n(void)const  __ptr64
?DriveId_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbDrive::DriveNumber(void)const  __ptr64
?DriveNumber@NtmsDbDrive@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbDrive::DriveState(void)const  __ptr64
?DriveState@NtmsDbDrive@@QEBA?BKXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbDrive::DriveType(void)const  __ptr64
?DriveType@NtmsDbDrive@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbDriveType::DriveType(void)const  __ptr64
?DriveType@NtmsDbDriveType@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbComputer::Drives(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Drives@NtmsDbComputer@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::Drives(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Drives@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: int __cdecl NtmsDbList::Dynamic(void)const  __ptr64
?Dynamic@NtmsDbList@@QEBAHXZ
; public: int __cdecl NtmsDbRecordProp::Dynamic(void)const  __ptr64
?Dynamic@NtmsDbRecordProp@@QEBAHXZ
; public: static class ChangeRegistration * __ptr64 __cdecl NtmsDbDataCtxt::EnableNotification(void (__cdecl*)(int,class NtmsDbGuid const & __ptr64,int,void * __ptr64),void * __ptr64)
?EnableNotification@NtmsDbDataCtxt@@SAPEAVChangeRegistration@@P6AXHAEBVNtmsDbGuid@@HPEAX@Z1@Z
; public: short const  __cdecl NtmsDbObject::Enabled(void)const  __ptr64
?Enabled@NtmsDbObject@@QEBA?BFXZ
; public: void __cdecl NtmsDbDataCtxt::EnterConnCritSection(void) __ptr64
?EnterConnCritSection@NtmsDbDataCtxt@@QEAAXXZ
; public: class NtmsDbError const & __ptr64 __cdecl NtmsDbDataCtxt::Error(void)const  __ptr64
?Error@NtmsDbDataCtxt@@QEBAAEBVNtmsDbError@@XZ
; public: int const  __cdecl NtmsDbError::Error(void)const  __ptr64
?Error@NtmsDbError@@QEBA?BHXZ
; public: class NtmsDbError & __ptr64 __cdecl NtmsDbObject::Error(void) __ptr64
?Error@NtmsDbObject@@QEAAAEAVNtmsDbError@@XZ
; public: unsigned long __cdecl NtmsDbLibWorkItem::ErrorCode(void) __ptr64
?ErrorCode@NtmsDbLibWorkItem@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbObject::ExplicitAddRelation(long,short,class NtmsDbGuid const & __ptr64) __ptr64
?ExplicitAddRelation@NtmsDbObject@@QEAAKJFAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbObject::ExplicitRemoveRelation(long,class NtmsDbGuid const & __ptr64) __ptr64
?ExplicitRemoveRelation@NtmsDbObject@@QEAAKJAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbDataCtxt::ExportDatabase(void) __ptr64
?ExportDatabase@NtmsDbDataCtxt@@QEAAKXZ
; public: unsigned long const  __cdecl NtmsDbIEPort::ExtendState(void)const  __ptr64
?ExtendState@NtmsDbIEPort@@QEBA?BKXZ
; public: virtual unsigned long __cdecl NtmsDbObject::Fetch(class NtmsDbDataCtxt * __ptr64) __ptr64
?Fetch@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; private: unsigned long __cdecl NtmsDatabase::FileEnd(void) __ptr64
?FileEnd@NtmsDatabase@@AEAAKXZ
; public: void * __ptr64 __cdecl NtmsDbFile::FileHandle(void) __ptr64
?FileHandle@NtmsDbFile@@QEAAPEAXXZ
; private: unsigned long __cdecl NtmsDatabase::FilePosition(unsigned long) __ptr64
?FilePosition@NtmsDatabase@@AEAAKK@Z
; public: unsigned long __cdecl NtmsDbFile::FileStatus(void) __ptr64
?FileStatus@NtmsDbFile@@QEAAKXZ
; public: unsigned short * __ptr64 __cdecl NtmsDbFile::Filename(void) __ptr64
?Filename@NtmsDbFile@@QEAAPEAGXZ
; private: void __cdecl NtmsDbTypeGuid::Fill(struct _GUID & __ptr64,char * __ptr64) __ptr64
?Fill@NtmsDbTypeGuid@@AEAAXAEAU_GUID@@PEAD@Z
; public: long __cdecl NtmsDbList::Map::Find(class NtmsDbListItem * __ptr64)const  __ptr64
?Find@Map@NtmsDbList@@QEBAJPEAVNtmsDbListItem@@@Z
; public: static int __cdecl NtmsDbDataCtxt::FindObType(class NtmsDbRecordKey & __ptr64)
?FindObType@NtmsDbDataCtxt@@SAHAEAVNtmsDbRecordKey@@@Z
; public: static int __cdecl NtmsDbDataCtxt::FindObType(short)
?FindObType@NtmsDbDataCtxt@@SAHF@Z
; public: unsigned long const  __cdecl NtmsDbLibrary::FirstChangerNumber(void)const  __ptr64
?FirstChangerNumber@NtmsDbLibrary@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbLibrary::FirstDriveNumber(void)const  __ptr64
?FirstDriveNumber@NtmsDbLibrary@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbLibrary::FirstPortNumber(void)const  __ptr64
?FirstPortNumber@NtmsDbLibrary@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbLibrary::FirstSlotNumber(void)const  __ptr64
?FirstSlotNumber@NtmsDbLibrary@@QEBA?BKXZ
; public: short const  __cdecl NtmsDbLibrary::FixedOffline(void)const  __ptr64
?FixedOffline@NtmsDbLibrary@@QEBA?BFXZ
; public: unsigned long const  __cdecl NtmsDbLibrary::Flags(void)const  __ptr64
?Flags@NtmsDbLibrary@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbMediaPool::Folders(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Folders@NtmsDbMediaPool@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: int __cdecl NtmsDbList::Map::Full(void)const  __ptr64
?Full@Map@NtmsDbList@@QEBAHXZ
; public: unsigned long const  __cdecl NtmsDbIEPort::FullState(void)const  __ptr64
?FullState@NtmsDbIEPort@@QEBA?BKXZ
; public: short __cdecl NtmsDbGuid::GenerateHash(void) __ptr64
?GenerateHash@NtmsDbGuid@@QEAAFXZ
; public: long __cdecl NtmsDbList::Map::Get(long,class NtmsDbListItem * __ptr64 & __ptr64)const  __ptr64
?Get@Map@NtmsDbList@@QEBAJJAEAPEAVNtmsDbListItem@@@Z
; public: unsigned long __cdecl NtmsDbPartition::GetAllocOption(void) __ptr64
?GetAllocOption@NtmsDbPartition@@QEAAKXZ
; public: void __cdecl NtmsDbLibWorkItem::GetApplicationA(char * __ptr64,int) __ptr64
?GetApplicationA@NtmsDbLibWorkItem@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbOpRequest::GetApplicationA(char * __ptr64,int) __ptr64
?GetApplicationA@NtmsDbOpRequest@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbLibWorkItem::GetApplicationW(unsigned short * __ptr64,int) __ptr64
?GetApplicationW@NtmsDbLibWorkItem@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbOpRequest::GetApplicationW(unsigned short * __ptr64,int) __ptr64
?GetApplicationW@NtmsDbOpRequest@@QEAAXPEAGH@Z
; public: unsigned long __cdecl NtmsDbObject::GetAttribute(class NtmsDbDataCtxt * __ptr64,char const * __ptr64,void * __ptr64,unsigned long * __ptr64) __ptr64
?GetAttribute@NtmsDbObject@@QEAAKPEAVNtmsDbDataCtxt@@PEBDPEAXPEAK@Z
; public: void __cdecl NtmsDbPhysicalMedia::GetBarcodeA(char * __ptr64,int) __ptr64
?GetBarcodeA@NtmsDbPhysicalMedia@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbPhysicalMedia::GetBarcodeW(unsigned short * __ptr64,int) __ptr64
?GetBarcodeW@NtmsDbPhysicalMedia@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbUIDestination::GetComputer(unsigned short * __ptr64,int) __ptr64
?GetComputer@NtmsDbUIDestination@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbLibWorkItem::GetComputerA(char * __ptr64,int) __ptr64
?GetComputerA@NtmsDbLibWorkItem@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbOpRequest::GetComputerA(char * __ptr64,int) __ptr64
?GetComputerA@NtmsDbOpRequest@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbLibWorkItem::GetComputerW(unsigned short * __ptr64,int) __ptr64
?GetComputerW@NtmsDbLibWorkItem@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbOpRequest::GetComputerW(unsigned short * __ptr64,int) __ptr64
?GetComputerW@NtmsDbOpRequest@@QEAAXPEAGH@Z
; public: void * __ptr64 __cdecl NtmsDbRecordProp::GetData(int * __ptr64)const  __ptr64
?GetData@NtmsDbRecordProp@@QEBAPEAXPEAH@Z
; protected: virtual void __cdecl NtmsDbChanger::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbChanger@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbChangerType::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbChangerType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbComputer::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbComputer@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDrive::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbDrive@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDriveType::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbDriveType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEDoor::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbIEDoor@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEPort::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbIEPort@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibWorkItem::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbLibWorkItem@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibrary::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbLibrary@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLogicalMedia::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbLogicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaPool::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbMediaPool@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaType::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbMediaType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbObject::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbObject@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbOpRequest::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbOpRequest@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPartition::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbPartition@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPhysicalMedia::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbPhysicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbStorageSlot::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbStorageSlot@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbUIDestination::GetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?GetDbObject@NtmsDbUIDestination@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbChanger::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbChanger@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbChangerType::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbChangerType@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbComputer::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbComputer@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbDrive::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbDrive@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbDriveType::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbDriveType@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbIEDoor::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbIEDoor@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbIEPort::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbIEPort@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbLibWorkItem::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbLibWorkItem@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbLibrary::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbLibrary@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbLogicalMedia::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbLogicalMedia@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbMediaPool::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbMediaPool@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbMediaType::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbMediaType@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbObject::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbObject@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbOpRequest::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbOpRequest@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbPartition::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbPartition@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbPhysicalMedia::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbPhysicalMedia@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbStorageSlot::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbStorageSlot@@MEBAPEAVNtmsDbRecordProp@@J@Z
; protected: virtual class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbUIDestination::GetDbProperty(long)const  __ptr64
?GetDbProperty@NtmsDbUIDestination@@MEBAPEAVNtmsDbRecordProp@@J@Z
; public: void __cdecl NtmsDbObject::GetDescriptionA(char * __ptr64,int) __ptr64
?GetDescriptionA@NtmsDbObject@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbObject::GetDescriptionW(unsigned short * __ptr64,int) __ptr64
?GetDescriptionW@NtmsDbObject@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDrive::GetDriveLetter(unsigned short * __ptr64,int) __ptr64
?GetDriveLetter@NtmsDbDrive@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDrive::GetDriveLetterA(char * __ptr64,int) __ptr64
?GetDriveLetterA@NtmsDbDrive@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbOpRequest::GetMessageA(char * __ptr64,int) __ptr64
?GetMessageA@NtmsDbOpRequest@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbOpRequest::GetMessageW(unsigned short * __ptr64,int) __ptr64
?GetMessageW@NtmsDbOpRequest@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbObject::GetNameA(char * __ptr64,int) __ptr64
?GetNameA@NtmsDbObject@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbObject::GetNameW(unsigned short * __ptr64,int) __ptr64
?GetNameW@NtmsDbObject@@QEAAXPEAGH@Z
; public: static class NtmsDbRecordProp & __ptr64 __cdecl NtmsDbRecordPropList::GetNull(void)
?GetNull@NtmsDbRecordPropList@@SAAEAVNtmsDbRecordProp@@XZ
; public: void __cdecl NtmsDbPartition::GetOmidLabelInfoA(char * __ptr64,int)const  __ptr64
?GetOmidLabelInfoA@NtmsDbPartition@@QEBAXPEADH@Z
; public: void __cdecl NtmsDbPartition::GetOmidLabelInfoW(unsigned short * __ptr64,int)const  __ptr64
?GetOmidLabelInfoW@NtmsDbPartition@@QEBAXPEAGH@Z
; public: void __cdecl NtmsDbPartition::GetOmidLabelTypeA(char * __ptr64,int)const  __ptr64
?GetOmidLabelTypeA@NtmsDbPartition@@QEBAXPEADH@Z
; public: void __cdecl NtmsDbPartition::GetOmidLabelTypeW(unsigned short * __ptr64,int)const  __ptr64
?GetOmidLabelTypeW@NtmsDbPartition@@QEBAXPEAGH@Z
; public: void __cdecl NtmsDbChanger::GetPathNameA(char * __ptr64,int) __ptr64
?GetPathNameA@NtmsDbChanger@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbDrive::GetPathNameA(char * __ptr64,int) __ptr64
?GetPathNameA@NtmsDbDrive@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbChanger::GetPathNameW(unsigned short * __ptr64,int) __ptr64
?GetPathNameW@NtmsDbChanger@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDrive::GetPathNameW(unsigned short * __ptr64,int) __ptr64
?GetPathNameW@NtmsDbDrive@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbChangerType::GetProductA(char * __ptr64,int) __ptr64
?GetProductA@NtmsDbChangerType@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbDriveType::GetProductA(char * __ptr64,int) __ptr64
?GetProductA@NtmsDbDriveType@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbChangerType::GetProductW(unsigned short * __ptr64,int) __ptr64
?GetProductW@NtmsDbChangerType@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDriveType::GetProductW(unsigned short * __ptr64,int) __ptr64
?GetProductW@NtmsDbDriveType@@QEAAXPEAGH@Z
; protected: class NtmsDbRecordProp & __ptr64 __cdecl NtmsDbObject::GetProperty(class NtmsDbRecordPropList * __ptr64,long) __ptr64
?GetProperty@NtmsDbObject@@IEAAAEAVNtmsDbRecordProp@@PEAVNtmsDbRecordPropList@@J@Z
; public: class NtmsDbRecordProp * __ptr64 __cdecl NtmsDbObject::GetProperty(long) __ptr64
?GetProperty@NtmsDbObject@@QEAAPEAVNtmsDbRecordProp@@J@Z
; public: class NtmsDbRecordProp & __ptr64 __cdecl NtmsDbRecordPropList::GetProperty(long) __ptr64
?GetProperty@NtmsDbRecordPropList@@QEAAAEAVNtmsDbRecordProp@@J@Z
; public: class NtmsDbPropDataType const & __ptr64 __cdecl NtmsDbRecordPropList::GetPropertyType(long) __ptr64
?GetPropertyType@NtmsDbRecordPropList@@QEAAAEBVNtmsDbPropDataType@@J@Z
; public: void __cdecl NtmsDbChanger::GetRevisionA(char * __ptr64,int) __ptr64
?GetRevisionA@NtmsDbChanger@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbDrive::GetRevisionA(char * __ptr64,int) __ptr64
?GetRevisionA@NtmsDbDrive@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbChanger::GetRevisionW(unsigned short * __ptr64,int) __ptr64
?GetRevisionW@NtmsDbChanger@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDrive::GetRevisionW(unsigned short * __ptr64,int) __ptr64
?GetRevisionW@NtmsDbDrive@@QEAAXPEAGH@Z
; public: unsigned long __cdecl NtmsDbObject::GetSecurityDescriptor(void * __ptr64,unsigned long & __ptr64) __ptr64
?GetSecurityDescriptor@NtmsDbObject@@QEAAKPEAXAEAK@Z
; public: void __cdecl NtmsDbPhysicalMedia::GetSequenceNumberA(char * __ptr64,int)const  __ptr64
?GetSequenceNumberA@NtmsDbPhysicalMedia@@QEBAXPEADH@Z
; public: void __cdecl NtmsDbPhysicalMedia::GetSequenceNumberW(unsigned short * __ptr64,int)const  __ptr64
?GetSequenceNumberW@NtmsDbPhysicalMedia@@QEBAXPEAGH@Z
; public: void __cdecl NtmsDbChanger::GetSerialNumberA(char * __ptr64,int) __ptr64
?GetSerialNumberA@NtmsDbChanger@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbDrive::GetSerialNumberA(char * __ptr64,int) __ptr64
?GetSerialNumberA@NtmsDbDrive@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbChanger::GetSerialNumberW(unsigned short * __ptr64,int) __ptr64
?GetSerialNumberW@NtmsDbChanger@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDrive::GetSerialNumberW(unsigned short * __ptr64,int) __ptr64
?GetSerialNumberW@NtmsDbDrive@@QEAAXPEAGH@Z
; public: unsigned long __cdecl NtmsDbComputer::GetUIDestinations(class NtmsDbDataCtxt * __ptr64,unsigned long,class NtmsDbSelectionSet & __ptr64) __ptr64
?GetUIDestinations@NtmsDbComputer@@QEAAKPEAVNtmsDbDataCtxt@@KAEAVNtmsDbSelectionSet@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::GetUIDestinations(class NtmsDbDataCtxt * __ptr64,unsigned long,class NtmsDbSelectionSet & __ptr64) __ptr64
?GetUIDestinations@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@KAEAVNtmsDbSelectionSet@@@Z
; public: void __cdecl NtmsDbLibWorkItem::GetUserA(char * __ptr64,int) __ptr64
?GetUserA@NtmsDbLibWorkItem@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbOpRequest::GetUserA(char * __ptr64,int) __ptr64
?GetUserA@NtmsDbOpRequest@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbLibWorkItem::GetUserW(unsigned short * __ptr64,int) __ptr64
?GetUserW@NtmsDbLibWorkItem@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbOpRequest::GetUserW(unsigned short * __ptr64,int) __ptr64
?GetUserW@NtmsDbOpRequest@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbChangerType::GetVendorA(char * __ptr64,int) __ptr64
?GetVendorA@NtmsDbChangerType@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbDriveType::GetVendorA(char * __ptr64,int) __ptr64
?GetVendorA@NtmsDbDriveType@@QEAAXPEADH@Z
; public: void __cdecl NtmsDbChangerType::GetVendorW(unsigned short * __ptr64,int) __ptr64
?GetVendorW@NtmsDbChangerType@@QEAAXPEAGH@Z
; public: void __cdecl NtmsDbDriveType::GetVendorW(unsigned short * __ptr64,int) __ptr64
?GetVendorW@NtmsDbDriveType@@QEAAXPEAGH@Z
; public: class NtmsDatabase * __ptr64 __cdecl NtmsDbDataCtxt::Handle(void)const  __ptr64
?Handle@NtmsDbDataCtxt@@QEBAPEAVNtmsDatabase@@XZ
; public: int __cdecl NtmsDbPropGuid::HasChanged(void)const  __ptr64
?HasChanged@NtmsDbPropGuid@@QEBAHXZ
; public: int __cdecl NtmsDbPropGuid::HasNewRelation(void)const  __ptr64
?HasNewRelation@NtmsDbPropGuid@@QEBAHXZ
; public: int __cdecl NtmsDbPropGuid::HasPreviousRelation(void)const  __ptr64
?HasPreviousRelation@NtmsDbPropGuid@@QEBAHXZ
; public: int __cdecl NtmsDbPropGuid::HasRelatedProperty(void)const  __ptr64
?HasRelatedProperty@NtmsDbPropGuid@@QEBAHXZ
; public: class NtmsDbPropHeader & __ptr64 __cdecl NtmsDbRecordProp::Header(void) __ptr64
?Header@NtmsDbRecordProp@@QEAAAEAVNtmsDbPropHeader@@XZ
; public: long __cdecl NtmsDbPhysicalMedia::HomeSlotId_IsNotNull(void) __ptr64
?HomeSlotId_IsNotNull@NtmsDbPhysicalMedia@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPhysicalMedia::HomeSlotId_n(void)const  __ptr64
?HomeSlotId_n@NtmsDbPhysicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbIEDoor::IEDoorNumber(void)const  __ptr64
?IEDoorNumber@NtmsDbIEDoor@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbIEDoor::IEDoorState(void)const  __ptr64
?IEDoorState@NtmsDbIEDoor@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbLibrary::IEDoors(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?IEDoors@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned long const  __cdecl NtmsDbIEPort::IEPortNumber(void)const  __ptr64
?IEPortNumber@NtmsDbIEPort@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbLibrary::IEPorts(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?IEPorts@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned long __cdecl NtmsDbDataCtxt::ImportDatabase(void) __ptr64
?ImportDatabase@NtmsDbDataCtxt@@QEAAKXZ
; public: void __cdecl NtmsDbPropHeader::IncCount(void) __ptr64
?IncCount@NtmsDbPropHeader@@QEAAXXZ
; public: long __cdecl NtmsDbUIDestination::IncReference(void) __ptr64
?IncReference@NtmsDbUIDestination@@QEAAJXZ
; public: unsigned long __cdecl NtmsDbRecordKey::Index(void)const  __ptr64
?Index@NtmsDbRecordKey@@QEBAKXZ
; public: void __cdecl NtmsDbRecordProp::Init(short) __ptr64
?Init@NtmsDbRecordProp@@QEAAXF@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,class NtmsDbGuid & __ptr64,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFAEAVNtmsDbGuid@@H@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,class NtmsDbLinkedGuid & __ptr64,class NtmsDbRecordType * __ptr64,short) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFAEAVNtmsDbLinkedGuid@@PEAVNtmsDbRecordType@@F@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,char * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEADHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,unsigned char * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAEHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,short * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAFHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,unsigned short * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAGHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,long * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAJHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,unsigned long * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAKHH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,union _LARGE_INTEGER * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAT_LARGE_INTEGER@@HH@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,struct _SYSTEMTIME * __ptr64,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAU_SYSTEMTIME@@H@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,class NtmsDbRecordKeyList * __ptr64,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAVNtmsDbRecordKeyList@@H@Z
; public: void __cdecl NtmsDbRecordProp::Init(short,void * __ptr64,int,int) __ptr64
?Init@NtmsDbRecordProp@@QEAAXFPEAXHH@Z
; protected: virtual void __cdecl NtmsDbChanger::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbChanger@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbChangerType::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbChangerType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbComputer::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbComputer@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDrive::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbDrive@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDriveType::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbDriveType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEDoor::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbIEDoor@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEPort::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbIEPort@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibWorkItem::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbLibWorkItem@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibrary::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbLibrary@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLogicalMedia::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbLogicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaPool::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbMediaPool@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaType::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbMediaType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbObject::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbObject@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbOpRequest::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbOpRequest@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPartition::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbPartition@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPhysicalMedia::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbPhysicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbStorageSlot::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbStorageSlot@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbUIDestination::InitDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?InitDbObject@NtmsDbUIDestination@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; private: void __cdecl NtmsDbChanger::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbChanger@@AEAAXXZ
; private: void __cdecl NtmsDbChangerType::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbChangerType@@AEAAXXZ
; private: void __cdecl NtmsDbComputer::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbComputer@@AEAAXXZ
; private: void __cdecl NtmsDbDrive::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbDrive@@AEAAXXZ
; private: void __cdecl NtmsDbDriveType::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbDriveType@@AEAAXXZ
; private: void __cdecl NtmsDbIEDoor::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbIEDoor@@AEAAXXZ
; private: void __cdecl NtmsDbIEPort::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbIEPort@@AEAAXXZ
; private: void __cdecl NtmsDbLibWorkItem::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbLibWorkItem@@AEAAXXZ
; private: void __cdecl NtmsDbLibrary::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbLibrary@@AEAAXXZ
; private: void __cdecl NtmsDbLogicalMedia::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbLogicalMedia@@AEAAXXZ
; private: void __cdecl NtmsDbMediaPool::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbMediaPool@@AEAAXXZ
; private: void __cdecl NtmsDbMediaType::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbMediaType@@AEAAXXZ
; private: void __cdecl NtmsDbObject::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbObject@@AEAAXXZ
; private: void __cdecl NtmsDbOpRequest::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbOpRequest@@AEAAXXZ
; private: void __cdecl NtmsDbPartition::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbPartition@@AEAAXXZ
; private: void __cdecl NtmsDbPhysicalMedia::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbPhysicalMedia@@AEAAXXZ
; private: void __cdecl NtmsDbStorageSlot::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbStorageSlot@@AEAAXXZ
; private: void __cdecl NtmsDbUIDestination::InitDefaults(void) __ptr64
?InitDefaults@NtmsDbUIDestination@@AEAAXXZ
; public: static int __cdecl NtmsDbDataCtxt::InitMutex(void)
?InitMutex@NtmsDbDataCtxt@@SAHXZ
; protected: virtual unsigned long __cdecl NtmsDbObject::InitializeObject(unsigned long) __ptr64
?InitializeObject@NtmsDbObject@@MEAAKK@Z
; public: virtual unsigned long __cdecl NtmsDbObject::Insert(class NtmsDbDataCtxt * __ptr64) __ptr64
?Insert@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: unsigned short const * __ptr64 __cdecl NtmsDbChanger::InstanceNameW(void)const  __ptr64
?InstanceNameW@NtmsDbChanger@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDrive::InstanceNameW(void)const  __ptr64
?InstanceNameW@NtmsDbDrive@@QEBAPEBGXZ
; public: unsigned long const  __cdecl NtmsDbLibrary::InventoryMethod(void)const  __ptr64
?InventoryMethod@NtmsDbLibrary@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbPhysicalMedia::InventoryState(void)const  __ptr64
?InventoryState@NtmsDbPhysicalMedia@@QEBA?BKXZ
; public: int __cdecl NtmsDbRecordProp::IsBufferValid(void)const  __ptr64
?IsBufferValid@NtmsDbRecordProp@@QEBAHXZ
; public: int __cdecl NtmsDbObject::IsModified(void)const  __ptr64
?IsModified@NtmsDbObject@@QEBAHXZ
; public: int __cdecl NtmsDbRecordProp::IsModified(void)const  __ptr64
?IsModified@NtmsDbRecordProp@@QEBAHXZ
; public: int __cdecl NtmsDbObject::IsNew(void)const  __ptr64
?IsNew@NtmsDbObject@@QEBAHXZ
; public: int __cdecl NtmsDbRecordKey::IsNew(void) __ptr64
?IsNew@NtmsDbRecordKey@@QEAAHXZ
; public: int __cdecl NtmsDbRecordProp::IsNull(void)const  __ptr64
?IsNull@NtmsDbRecordProp@@QEBAHXZ
; public: int __cdecl NtmsDbError::IsSuccess(void)const  __ptr64
?IsSuccess@NtmsDbError@@QEBAHXZ
; public: int __cdecl NtmsDatabase::IsValid(void) __ptr64
?IsValid@NtmsDatabase@@QEAAHXZ
; public: int __cdecl NtmsDbDataCtxt::IsValid(void)const  __ptr64
?IsValid@NtmsDbDataCtxt@@QEBAHXZ
; public: int __cdecl NtmsDbObject::IsValid(void)const  __ptr64
?IsValid@NtmsDbObject@@QEBAHXZ
; public: int __cdecl NtmsDbRecordKey::IsValid(void) __ptr64
?IsValid@NtmsDbRecordKey@@QEAAHXZ
; public: int __cdecl NtmsDbRecordProp::IsValid(void)const  __ptr64
?IsValid@NtmsDbRecordProp@@QEBAHXZ
; public: int __cdecl NtmsDbRecordPropList::IsValid(void)const  __ptr64
?IsValid@NtmsDbRecordPropList@@QEBAHXZ
; public: int __cdecl NtmsDbRecordType::IsValid(void)const  __ptr64
?IsValid@NtmsDbRecordType@@QEBAHXZ
; public: int __cdecl NtmsDbSelectionSet::IsValid(void)const  __ptr64
?IsValid@NtmsDbSelectionSet@@QEBAHXZ
; public: long __cdecl NtmsDbPropRelation::KeyCount(void) __ptr64
?KeyCount@NtmsDbPropRelation@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::LastCleanedTs_IsNotNull(void) __ptr64
?LastCleanedTs_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: struct _SYSTEMTIME const  __cdecl NtmsDbDrive::LastCleanedTs_n(void)const  __ptr64
?LastCleanedTs_n@NtmsDbDrive@@QEBA?BU_SYSTEMTIME@@XZ
; public: unsigned long __cdecl NtmsDbObject::LastError(void)const  __ptr64
?LastError@NtmsDbObject@@QEBAKXZ
; public: unsigned long __cdecl NtmsDbDataCtxt::LastErrorCode(void)const  __ptr64
?LastErrorCode@NtmsDbDataCtxt@@QEBAKXZ
; public: char const * __ptr64 __cdecl NtmsDbObject::LastErrorString(void)const  __ptr64
?LastErrorString@NtmsDbObject@@QEBAPEBDXZ
; public: unsigned long __cdecl NtmsDbPropertyValue::LastStatus(void) __ptr64
?LastStatus@NtmsDbPropertyValue@@QEAAKXZ
; public: void __cdecl NtmsDbDataCtxt::LeaveConnCritSection(void) __ptr64
?LeaveConnCritSection@NtmsDbDataCtxt@@QEAAXXZ
; public: unsigned __int64 __cdecl NtmsDbString::Length(void)const  __ptr64
?Length@NtmsDbString@@QEBA_KXZ
; public: unsigned long __cdecl NtmsDbLibrary::LibCurrentMedia(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?LibCurrentMedia@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: long __cdecl NtmsDbPhysicalMedia::LibCurrentMedia_IsNotNull(void)const  __ptr64
?LibCurrentMedia_IsNotNull@NtmsDbPhysicalMedia@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPhysicalMedia::LibCurrentMedia_n(void)const  __ptr64
?LibCurrentMedia_n@NtmsDbPhysicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: long __cdecl NtmsDbComputer::LibReqCleanTime(void)const  __ptr64
?LibReqCleanTime@NtmsDbComputer@@QEBAJXZ
; public: unsigned long __cdecl NtmsDbComputer::LibReqFlags(void)const  __ptr64
?LibReqFlags@NtmsDbComputer@@QEBAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::LibWorkItems(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?LibWorkItems@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned long const  __cdecl NtmsDbLibrary::LibraryType(void)const  __ptr64
?LibraryType@NtmsDbLibrary@@QEBA?BKXZ
; public: long __cdecl NtmsDbChanger::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbChanger@@QEBAJXZ
; public: long __cdecl NtmsDbDrive::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbDrive@@QEBAJXZ
; public: long __cdecl NtmsDbIEDoor::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbIEDoor@@QEBAJXZ
; public: long __cdecl NtmsDbIEPort::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbIEPort@@QEBAJXZ
; public: long __cdecl NtmsDbLibWorkItem::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbLibWorkItem@@QEBAJXZ
; public: long __cdecl NtmsDbStorageSlot::Library_IsNotNull(void)const  __ptr64
?Library_IsNotNull@NtmsDbStorageSlot@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbChanger::Library_n(void)const  __ptr64
?Library_n@NtmsDbChanger@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbDrive::Library_n(void)const  __ptr64
?Library_n@NtmsDbDrive@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbIEDoor::Library_n(void)const  __ptr64
?Library_n@NtmsDbIEDoor@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbIEPort::Library_n(void)const  __ptr64
?Library_n@NtmsDbIEPort@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::Library_n(void)const  __ptr64
?Library_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbStorageSlot::Library_n(void)const  __ptr64
?Library_n@NtmsDbStorageSlot@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbComputer::Librarys(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Librarys@NtmsDbComputer@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned long const  __cdecl NtmsDbPartition::LifeCycleState(void)const  __ptr64
?LifeCycleState@NtmsDbPartition@@QEBA?BKXZ
; public: class NtmsDbRecordKeyList * __ptr64 __cdecl NtmsDbPropRelation::List(void) __ptr64
?List@NtmsDbPropRelation@@QEAAPEAVNtmsDbRecordKeyList@@XZ
; private: class NtmsDbRecordKeyList * __ptr64 __cdecl NtmsDbSelectionSet::List(void) __ptr64
?List@NtmsDbSelectionSet@@AEAAPEAVNtmsDbRecordKeyList@@XZ
; public: unsigned int __cdecl NtmsDbRecordProp::Load(unsigned char * __ptr64,unsigned long & __ptr64) __ptr64
?Load@NtmsDbRecordProp@@QEAAIPEAEAEAK@Z
; public: unsigned long __cdecl NtmsDbMediaPool::LogicalPoolMember(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?LogicalPoolMember@NtmsDbMediaPool@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: long __cdecl NtmsDbPartition::Logicalmedia_IsNotNull(void)const  __ptr64
?Logicalmedia_IsNotNull@NtmsDbPartition@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPartition::Logicalmedia_n(void)const  __ptr64
?Logicalmedia_n@NtmsDbPartition@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbMediaPool::MaxAllocates(void)const  __ptr64
?MaxAllocates@NtmsDbMediaPool@@QEBA?BKXZ
; public: unsigned short const  __cdecl NtmsDbIEPort::MaxExtendSecs(void)const  __ptr64
?MaxExtendSecs@NtmsDbIEPort@@QEBA?BGXZ
; public: unsigned short const  __cdecl NtmsDbIEDoor::MaxOpenSecs(void)const  __ptr64
?MaxOpenSecs@NtmsDbIEDoor@@QEBA?BGXZ
; public: long __cdecl NtmsDbLogicalMedia::MediaPoolId_IsNotNull(void) __ptr64
?MediaPoolId_IsNotNull@NtmsDbLogicalMedia@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLogicalMedia::MediaPoolId_n(void)const  __ptr64
?MediaPoolId_n@NtmsDbLogicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbComputer::MediaPoolPolicy(void)const  __ptr64
?MediaPoolPolicy@NtmsDbComputer@@QEBAKXZ
; public: long __cdecl NtmsDbComputer::MediaRoot_IsNotNull(void)const  __ptr64
?MediaRoot_IsNotNull@NtmsDbComputer@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbComputer::MediaRoot_n(void)const  __ptr64
?MediaRoot_n@NtmsDbComputer@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const  __cdecl NtmsDbMediaPool::MediaType(void)const  __ptr64
?MediaType@NtmsDbMediaPool@@QEBA?BVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbMediaType::MediaType(void)const  __ptr64
?MediaType@NtmsDbMediaType@@QEBA?BKXZ
; public: class NtmsDbGuid const  __cdecl NtmsDbPhysicalMedia::MediaType(void)const  __ptr64
?MediaType@NtmsDbPhysicalMedia@@QEBA?BVNtmsDbGuid@@XZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::MediaTypeCode(void) __ptr64
?MediaTypeCode@NtmsDbPhysicalMedia@@QEAAKXZ
; public: long __cdecl NtmsDbMediaPool::MediaType_IsNotNull(void)const  __ptr64
?MediaType_IsNotNull@NtmsDbMediaPool@@QEBAJXZ
; public: unsigned long __cdecl NtmsDbLibrary::MediaTypes(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?MediaTypes@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned short const * __ptr64 __cdecl NtmsDbOpRequest::Message(void)const  __ptr64
?Message@NtmsDbOpRequest@@QEBAPEBGXZ
; public: struct _SYSTEMTIME  __cdecl NtmsDbObject::ModifyTs(void)const  __ptr64
?ModifyTs@NtmsDbObject@@QEBA?AU_SYSTEMTIME@@XZ
; protected: virtual void __cdecl NtmsDbObject::ModifyValueToNull(long) __ptr64
?ModifyValueToNull@NtmsDbObject@@MEAAXJ@Z
; public: unsigned long const  __cdecl NtmsDbPartition::MountCount(void)const  __ptr64
?MountCount@NtmsDbPartition@@QEBA?BKXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPhysicalMedia::MountedPartition(void)const  __ptr64
?MountedPartition@NtmsDbPhysicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbMediaPool::MpoolType(void)const  __ptr64
?MpoolType@NtmsDbMediaPool@@QEBA?BKXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbObject::NameW(void) __ptr64
?NameW@NtmsDbObject@@QEAAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbObject::NameW(void)const  __ptr64
?NameW@NtmsDbObject@@QEBAPEBGXZ
; public: long __cdecl NtmsDbObject::Name_IsNotNull(void) __ptr64
?Name_IsNotNull@NtmsDbObject@@QEAAJXZ
; public: char const * __ptr64 __cdecl NtmsDbObject::Name_n(void) __ptr64
?Name_n@NtmsDbObject@@QEAAPEBDXZ
; public: short const  __cdecl NtmsDbDrive::NeedsCleaning(void)const  __ptr64
?NeedsCleaning@NtmsDbDrive@@QEBA?BFXZ
; public: void __cdecl NtmsDbGuid::New(void) __ptr64
?New@NtmsDbGuid@@QEAAXXZ
; public: void __cdecl NtmsDbRecordPropList::NewPropBinary(long,unsigned char * __ptr64,int) __ptr64
?NewPropBinary@NtmsDbRecordPropList@@QEAAXJPEAEH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropChar(long,char * __ptr64,int) __ptr64
?NewPropChar@NtmsDbRecordPropList@@QEAAXJPEADH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropChar(long,unsigned char * __ptr64,int) __ptr64
?NewPropChar@NtmsDbRecordPropList@@QEAAXJPEAEH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropGuid(long,class NtmsDbGuid & __ptr64) __ptr64
?NewPropGuid@NtmsDbRecordPropList@@QEAAXJAEAVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropGuid(long,class NtmsDbLinkedGuid & __ptr64,class NtmsDbRecordType * __ptr64,long) __ptr64
?NewPropGuid@NtmsDbRecordPropList@@QEAAXJAEAVNtmsDbLinkedGuid@@PEAVNtmsDbRecordType@@J@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropLargeInt(long,union _LARGE_INTEGER * __ptr64,int) __ptr64
?NewPropLargeInt@NtmsDbRecordPropList@@QEAAXJPEAT_LARGE_INTEGER@@H@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropLong(long,long * __ptr64,int) __ptr64
?NewPropLong@NtmsDbRecordPropList@@QEAAXJPEAJH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropLong(long,unsigned long * __ptr64,int) __ptr64
?NewPropLong@NtmsDbRecordPropList@@QEAAXJPEAKH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropRelation(long) __ptr64
?NewPropRelation@NtmsDbRecordPropList@@QEAAXJ@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropRelation(long,class NtmsDbRecordKeyList * __ptr64) __ptr64
?NewPropRelation@NtmsDbRecordPropList@@QEAAXJPEAVNtmsDbRecordKeyList@@@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropShort(long,short * __ptr64,int) __ptr64
?NewPropShort@NtmsDbRecordPropList@@QEAAXJPEAFH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropShort(long,unsigned short * __ptr64,int) __ptr64
?NewPropShort@NtmsDbRecordPropList@@QEAAXJPEAGH@Z
; public: void __cdecl NtmsDbRecordPropList::NewPropTimeDate(long,struct _SYSTEMTIME * __ptr64) __ptr64
?NewPropTimeDate@NtmsDbRecordPropList@@QEAAXJPEAU_SYSTEMTIME@@@Z
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbPropGuid::NewRelationGuid(void) __ptr64
?NewRelationGuid@NtmsDbPropGuid@@QEAAAEAVNtmsDbGuid@@XZ
; public: class NtmsDbList::Map * __ptr64 __cdecl NtmsDbList::Map::Next(void) __ptr64
?Next@Map@NtmsDbList@@QEAAPEAV12@XZ
; public: long const  __cdecl NtmsDbMediaType::NextSequence(void)const  __ptr64
?NextSequence@NtmsDbMediaType@@QEBA?BJXZ
; public: static class NtmsDbPropDataType  NtmsDbRecordPropList::NoType
?NoType@NtmsDbRecordPropList@@2VNtmsDbPropDataType@@A DATA
; unsigned long __cdecl NtmsDbInstall(void)
?NtmsDbInstall@@YAKXZ
; unsigned long __cdecl NtmsDbRemove(void)
?NtmsDbRemove@@YAKXZ
; unsigned long __cdecl NtmsDbShutdown(void)
?NtmsDbShutdown@@YAKXZ
; public: int __cdecl NtmsDbGuid::Null(void)const  __ptr64
?Null@NtmsDbGuid@@QEBAHXZ
; public: static class NtmsDbGuid const & __ptr64 __cdecl NtmsDbGuid::NullGuid(void)
?NullGuid@NtmsDbGuid@@SAAEBV1@XZ
; public: static class NtmsDbRecordUniqueKey  NtmsDbRecordUniqueKey::NullKey
?NullKey@NtmsDbRecordUniqueKey@@2V1@A DATA
; public: static class NtmsDbRecordProp  NtmsDbRecordProp::NullProp
?NullProp@NtmsDbRecordProp@@2V1@A DATA
; public: unsigned long __cdecl NtmsDbLibrary::NumChangers(void) __ptr64
?NumChangers@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumDoors(void) __ptr64
?NumDoors@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumDrives(void) __ptr64
?NumDrives@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbMediaPool::NumFolders(void) __ptr64
?NumFolders@NtmsDbMediaPool@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumLibWorkItems(void) __ptr64
?NumLibWorkItems@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbMediaPool::NumLogicalMedia(void) __ptr64
?NumLogicalMedia@NtmsDbMediaPool@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumMedia(void) __ptr64
?NumMedia@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumMediaTypes(void) __ptr64
?NumMediaTypes@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::NumPartitions(void) __ptr64
?NumPartitions@NtmsDbPhysicalMedia@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbMediaPool::NumPhysicalMedia(void) __ptr64
?NumPhysicalMedia@NtmsDbMediaPool@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumPorts(void) __ptr64
?NumPorts@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::NumSlots(void) __ptr64
?NumSlots@NtmsDbLibrary@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbComputer::NumUIDestinations(unsigned long) __ptr64
?NumUIDestinations@NtmsDbComputer@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::NumUIDestinations(unsigned long) __ptr64
?NumUIDestinations@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long const  __cdecl NtmsDbChanger::Number(void)const  __ptr64
?Number@NtmsDbChanger@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbDriveType::NumberOfHeads(void)const  __ptr64
?NumberOfHeads@NtmsDbDriveType@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbMediaType::NumberOfSides(void)const  __ptr64
?NumberOfSides@NtmsDbMediaType@@QEBA?BKXZ
; public: static class NtmsDbObjTypeDef & __ptr64 __cdecl NtmsDbObjTypeDef::ObjTypeDef(unsigned long)
?ObjTypeDef@NtmsDbObjTypeDef@@SAAEAV1@K@Z
; void __cdecl ObjectChange(int,short,class NtmsDbGuid const & __ptr64,int)
?ObjectChange@@YAXHFAEBVNtmsDbGuid@@H@Z
; public: unsigned long __cdecl NtmsDbObjTypeDef::ObjectCode(void)const  __ptr64
?ObjectCode@NtmsDbObjTypeDef@@QEBAKXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbObject::ObjectGuid(void) __ptr64
?ObjectGuid@NtmsDbObject@@QEAAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbSelectionSet::ObjectGuid(long)const  __ptr64
?ObjectGuid@NtmsDbSelectionSet@@QEBAAEBVNtmsDbGuid@@J@Z
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbObject::ObjectId(void) __ptr64
?ObjectId@NtmsDbObject@@QEAAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbRecordUniqueKey const & __ptr64 __cdecl NtmsDbSelectionSet::ObjectKey(long)const  __ptr64
?ObjectKey@NtmsDbSelectionSet@@QEBAAEBVNtmsDbRecordUniqueKey@@J@Z
; public: unsigned long __cdecl NtmsDbObject::ObjectType(void) __ptr64
?ObjectType@NtmsDbObject@@QEAAKXZ
; public: static class NtmsDbObjTypeDef *  NtmsDbObjTypeDef::ObjectTypes
?ObjectTypes@NtmsDbObjTypeDef@@2PAV1@A DATA
; public: unsigned long const  __cdecl NtmsDbPartition::OmidLabelIdLength(void)const  __ptr64
?OmidLabelIdLength@NtmsDbPartition@@QEBA?BKXZ
; public: unsigned char const * __ptr64 __cdecl NtmsDbPartition::OmidLabelId_n(void)const  __ptr64
?OmidLabelId_n@NtmsDbPartition@@QEBAPEBEXZ
; public: long __cdecl NtmsDbComputer::OpReqCleanTime(void)const  __ptr64
?OpReqCleanTime@NtmsDbComputer@@QEBAJXZ
; public: unsigned long __cdecl NtmsDbComputer::OpReqFlags(void)const  __ptr64
?OpReqFlags@NtmsDbComputer@@QEBAKXZ
; public: unsigned long const  __cdecl NtmsDbLibWorkItem::OperationCode(void)const  __ptr64
?OperationCode@NtmsDbLibWorkItem@@QEBA?BKXZ
; public: long __cdecl NtmsDbPhysicalMedia::OperationErrorCode_IsNotNull(void) __ptr64
?OperationErrorCode_IsNotNull@NtmsDbPhysicalMedia@@QEAAJXZ
; public: unsigned long const  __cdecl NtmsDbLibWorkItem::OperationOption(void)const  __ptr64
?OperationOption@NtmsDbLibWorkItem@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbObject::Operational(void)const  __ptr64
?Operational@NtmsDbObject@@QEBA?BKXZ
; public: long __cdecl NtmsDbMediaPool::Parent_IsNotNull(void)const  __ptr64
?Parent_IsNotNull@NtmsDbMediaPool@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbMediaPool::Parent_n(void)const  __ptr64
?Parent_n@NtmsDbMediaPool@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLogicalMedia::Partition(void)const  __ptr64
?Partition@NtmsDbLogicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: long __cdecl NtmsDbLibWorkItem::PartitionId_IsNotNull(void) __ptr64
?PartitionId_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::PartitionId_n(void)const  __ptr64
?PartitionId_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: short const  __cdecl NtmsDbPartition::PartitionNumber(void)const  __ptr64
?PartitionNumber@NtmsDbPartition@@QEBA?BFXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::Partitions(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?Partitions@NtmsDbPhysicalMedia@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned short const * __ptr64 __cdecl NtmsDbChanger::PathNameW(void)const  __ptr64
?PathNameW@NtmsDbChanger@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDrive::PathNameW(void)const  __ptr64
?PathNameW@NtmsDbDrive@@QEBAPEBGXZ
; public: long __cdecl NtmsDbChanger::PathName_IsNotNull(void) __ptr64
?PathName_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::PathName_IsNotNull(void) __ptr64
?PathName_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: char const * __ptr64 __cdecl NtmsDbChanger::PathName_n(void) __ptr64
?PathName_n@NtmsDbChanger@@QEAAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbDrive::PathName_n(void) __ptr64
?PathName_n@NtmsDbDrive@@QEAAPEBDXZ
; public: long __cdecl NtmsDbPhysicalMedia::PhysLocId_IsNotNull(void) __ptr64
?PhysLocId_IsNotNull@NtmsDbPhysicalMedia@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPhysicalMedia::PhysLocId_n(void)const  __ptr64
?PhysLocId_n@NtmsDbPhysicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbPhysicalMedia::PhysLocType(void)const  __ptr64
?PhysLocType@NtmsDbPhysicalMedia@@QEBA?BKXZ
; public: long const  __cdecl NtmsDbPhysicalMedia::PhysMediaErrorCode_n(void)const  __ptr64
?PhysMediaErrorCode_n@NtmsDbPhysicalMedia@@QEBA?BJXZ
; public: long __cdecl NtmsDbLibWorkItem::PhysMediaId_IsNotNull(void) __ptr64
?PhysMediaId_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::PhysMediaId_n(void)const  __ptr64
?PhysMediaId_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbPhysicalMedia::PhysMediaState(void)const  __ptr64
?PhysMediaState@NtmsDbPhysicalMedia@@QEBA?BKXZ
; public: long __cdecl NtmsDbPartition::Physicalmedia_IsNotNull(void)const  __ptr64
?Physicalmedia_IsNotNull@NtmsDbPartition@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPartition::Physicalmedia_n(void)const  __ptr64
?Physicalmedia_n@NtmsDbPartition@@QEBAAEBVNtmsDbGuid@@XZ
; public: long __cdecl NtmsDbList::Map::Place(long)const  __ptr64
?Place@Map@NtmsDbList@@QEBAJJ@Z
; public: unsigned long __cdecl NtmsDbMediaPool::PoolMember(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?PoolMember@NtmsDbMediaPool@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: long __cdecl NtmsDbPhysicalMedia::PoolMember_IsNotNull(void)const  __ptr64
?PoolMember_IsNotNull@NtmsDbPhysicalMedia@@QEBAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbPhysicalMedia::PoolMember_n(void)const  __ptr64
?PoolMember_n@NtmsDbPhysicalMedia@@QEBAAEBVNtmsDbGuid@@XZ
; public: class NtmsDbGuid & __ptr64 __cdecl NtmsDbPropGuid::PreviousRelationGuid(void) __ptr64
?PreviousRelationGuid@NtmsDbPropGuid@@QEAAAEAVNtmsDbGuid@@XZ
; public: void __cdecl NtmsDbGuid::Print(void)const  __ptr64
?Print@NtmsDbGuid@@QEBAXXZ
; public: unsigned long __cdecl NtmsDbLibWorkItem::Priority(void) __ptr64
?Priority@NtmsDbLibWorkItem@@QEAAKXZ
; public: char const * __ptr64 __cdecl NtmsDbChangerType::Product(void) __ptr64
?Product@NtmsDbChangerType@@QEAAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbDriveType::Product(void) __ptr64
?Product@NtmsDbDriveType@@QEAAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbChangerType::ProductW(void)const  __ptr64
?ProductW@NtmsDbChangerType@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDriveType::ProductW(void)const  __ptr64
?ProductW@NtmsDbDriveType@@QEBAPEBGXZ
; public: short __cdecl NtmsDbPropHeader::PropCode(void)const  __ptr64
?PropCode@NtmsDbPropHeader@@QEBAFXZ
; public: long __cdecl NtmsDbPropertyValue::PropCode(void)const  __ptr64
?PropCode@NtmsDbPropertyValue@@QEBAJXZ
; public: unsigned long __cdecl NtmsDbRecordPropList::PropertySpace(void) __ptr64
?PropertySpace@NtmsDbRecordPropList@@QEAAKXZ
; public: class NtmsDbPropDataType const & __ptr64 __cdecl NtmsDbRecordPropList::PropertyType(void) __ptr64
?PropertyType@NtmsDbRecordPropList@@QEAAAEBVNtmsDbPropDataType@@XZ
; public: int __cdecl NtmsDbLibWorkItem::Protected(void) __ptr64
?Protected@NtmsDbLibWorkItem@@QEAAHXZ
; public: long __cdecl NtmsDbList::Map::Put(long,class NtmsDbListItem & __ptr64) __ptr64
?Put@Map@NtmsDbList@@QEAAJJAEAVNtmsDbListItem@@@Z
; public: int __cdecl NtmsDbRecordPropList::Quantity(void)const  __ptr64
?Quantity@NtmsDbRecordPropList@@QEBAHXZ
; private: void __cdecl NtmsDbRecordPropList::ReCount(void) __ptr64
?ReCount@NtmsDbRecordPropList@@AEAAXXZ
; protected: void __cdecl NtmsDbObject::ReadObjectRecord(class NtmsDbDataCtxt * __ptr64,class NtmsDbRecordKey & __ptr64,class NtmsDbRecordRev & __ptr64,class NtmsDbRecordPropList * __ptr64) __ptr64
?ReadObjectRecord@NtmsDbObject@@IEAAXPEAVNtmsDbDataCtxt@@AEAVNtmsDbRecordKey@@AEAVNtmsDbRecordRev@@PEAVNtmsDbRecordPropList@@@Z
; public: virtual unsigned long __cdecl NtmsDbObject::Refresh(class NtmsDbDataCtxt * __ptr64) __ptr64
?Refresh@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: void __cdecl NtmsDbObjTypeDef::Register(void) __ptr64
?Register@NtmsDbObjTypeDef@@QEAAXXZ
; protected: void __cdecl NtmsDbDataCtxt::RegisterObMeta(void) __ptr64
?RegisterObMeta@NtmsDbDataCtxt@@IEAAXXZ
; protected: void __cdecl NtmsDbObject::RegisterObjectRecord(class NtmsDbDataCtxt * __ptr64,class NtmsDbRecordType & __ptr64,char * __ptr64) __ptr64
?RegisterObjectRecord@NtmsDbObject@@IEAAXPEAVNtmsDbDataCtxt@@AEAVNtmsDbRecordType@@PEAD@Z
; public: long __cdecl NtmsDbPropGuid::RelationProperty(void)const  __ptr64
?RelationProperty@NtmsDbPropGuid@@QEBAJXZ
; public: class NtmsDbRecordType const & __ptr64 __cdecl NtmsDbPropGuid::RelationType(void)const  __ptr64
?RelationType@NtmsDbPropGuid@@QEBAAEBVNtmsDbRecordType@@XZ
; public: static void __cdecl NtmsDbDataCtxt::ReleaseChangeMutex(void)
?ReleaseChangeMutex@NtmsDbDataCtxt@@SAXXZ
; public: void __cdecl NtmsDbList::Map::Remove(long) __ptr64
?Remove@Map@NtmsDbList@@QEAAXJ@Z
; public: virtual unsigned long __cdecl NtmsDbLibrary::Remove(class NtmsDbDataCtxt * __ptr64) __ptr64
?Remove@NtmsDbLibrary@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: virtual unsigned long __cdecl NtmsDbObject::Remove(class NtmsDbDataCtxt * __ptr64) __ptr64
?Remove@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::RemoveMediaType(class NtmsDbGuid const & __ptr64) __ptr64
?RemoveMediaType@NtmsDbLibrary@@QEAAKAEBVNtmsDbGuid@@@Z
; public: virtual unsigned long __cdecl NtmsDbObject::RemoveRegardless(class NtmsDbDataCtxt * __ptr64) __ptr64
?RemoveRegardless@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: unsigned long __cdecl NtmsDbComputer::RemoveUIDestination(unsigned long,class NtmsDbGuid const & __ptr64) __ptr64
?RemoveUIDestination@NtmsDbComputer@@QEAAKKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::RemoveUIDestination(unsigned long,class NtmsDbGuid const & __ptr64) __ptr64
?RemoveUIDestination@NtmsDbLibrary@@QEAAKKAEBVNtmsDbGuid@@@Z
; protected: void __cdecl NtmsDbString::ReplaceString(char const * __ptr64) __ptr64
?ReplaceString@NtmsDbString@@IEAAXPEBD@Z
; public: unsigned long __cdecl NtmsDbObject::ReportSpecificError(unsigned long)const  __ptr64
?ReportSpecificError@NtmsDbObject@@QEBAKK@Z
; public: unsigned long __cdecl NtmsDbOpRequest::Request(void)const  __ptr64
?Request@NtmsDbOpRequest@@QEBAKXZ
; public: void __cdecl NtmsDbList::Reset(void) __ptr64
?Reset@NtmsDbList@@QEAAXXZ
; public: void __cdecl NtmsDbRecordPropList::Reset(void) __ptr64
?Reset@NtmsDbRecordPropList@@QEAAXXZ
; public: virtual void __cdecl NtmsDbSelectionSet::Reset(void) __ptr64
?Reset@NtmsDbSelectionSet@@UEAAXXZ
; public: char const * __ptr64 __cdecl NtmsDbChanger::Revision(void) __ptr64
?Revision@NtmsDbChanger@@QEAAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbDrive::Revision(void) __ptr64
?Revision@NtmsDbDrive@@QEAAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbChanger::RevisionW(void)const  __ptr64
?RevisionW@NtmsDbChanger@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDrive::RevisionW(void)const  __ptr64
?RevisionW@NtmsDbDrive@@QEBAPEBGXZ
; public: unsigned long __cdecl NtmsDbDataCtxt::RollbackTransaction(void) __ptr64
?RollbackTransaction@NtmsDbDataCtxt@@QEAAKXZ
; public: long __cdecl NtmsDbDrive::SavedPartitionId_IsNotNull(void) __ptr64
?SavedPartitionId_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbDrive::SavedPartitionId_n(void)const  __ptr64
?SavedPartitionId_n@NtmsDbDrive@@QEBAAEBVNtmsDbGuid@@XZ
; public: long __cdecl NtmsDbChanger::ScsiBus_IsNotNull(void) __ptr64
?ScsiBus_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::ScsiBus_IsNotNull(void) __ptr64
?ScsiBus_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: unsigned short const  __cdecl NtmsDbChanger::ScsiBus_n(void)const  __ptr64
?ScsiBus_n@NtmsDbChanger@@QEBA?BGXZ
; public: unsigned short const  __cdecl NtmsDbDrive::ScsiBus_n(void)const  __ptr64
?ScsiBus_n@NtmsDbDrive@@QEBA?BGXZ
; public: long __cdecl NtmsDbChanger::ScsiLun_IsNotNull(void) __ptr64
?ScsiLun_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::ScsiLun_IsNotNull(void) __ptr64
?ScsiLun_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: unsigned short const  __cdecl NtmsDbChanger::ScsiLun_n(void)const  __ptr64
?ScsiLun_n@NtmsDbChanger@@QEBA?BGXZ
; public: unsigned short const  __cdecl NtmsDbDrive::ScsiLun_n(void)const  __ptr64
?ScsiLun_n@NtmsDbDrive@@QEBA?BGXZ
; public: long __cdecl NtmsDbChanger::ScsiPort_IsNotNull(void) __ptr64
?ScsiPort_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::ScsiPort_IsNotNull(void) __ptr64
?ScsiPort_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: unsigned short const  __cdecl NtmsDbChanger::ScsiPort_n(void)const  __ptr64
?ScsiPort_n@NtmsDbChanger@@QEBA?BGXZ
; public: unsigned short const  __cdecl NtmsDbDrive::ScsiPort_n(void)const  __ptr64
?ScsiPort_n@NtmsDbDrive@@QEBA?BGXZ
; public: long __cdecl NtmsDbChanger::ScsiTarget_IsNotNull(void) __ptr64
?ScsiTarget_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::ScsiTarget_IsNotNull(void) __ptr64
?ScsiTarget_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: unsigned short const  __cdecl NtmsDbChanger::ScsiTarget_n(void)const  __ptr64
?ScsiTarget_n@NtmsDbChanger@@QEBA?BGXZ
; public: unsigned short const  __cdecl NtmsDbDrive::ScsiTarget_n(void)const  __ptr64
?ScsiTarget_n@NtmsDbDrive@@QEBA?BGXZ
; public: void __cdecl NtmsDbSelectionSet::Select(class NtmsDbDataCtxt * __ptr64,unsigned long) __ptr64
?Select@NtmsDbSelectionSet@@QEAAXPEAVNtmsDbDataCtxt@@K@Z
; public: unsigned short const * __ptr64 __cdecl NtmsDbChanger::SerialNumberW(void)const  __ptr64
?SerialNumberW@NtmsDbChanger@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDrive::SerialNumberW(void)const  __ptr64
?SerialNumberW@NtmsDbDrive@@QEBAPEBGXZ
; public: long __cdecl NtmsDbChanger::SerialNumber_IsNotNull(void) __ptr64
?SerialNumber_IsNotNull@NtmsDbChanger@@QEAAJXZ
; public: long __cdecl NtmsDbDrive::SerialNumber_IsNotNull(void) __ptr64
?SerialNumber_IsNotNull@NtmsDbDrive@@QEAAJXZ
; public: char const * __ptr64 __cdecl NtmsDbChanger::SerialNumber_n(void) __ptr64
?SerialNumber_n@NtmsDbChanger@@QEAAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbDrive::SerialNumber_n(void) __ptr64
?SerialNumber_n@NtmsDbDrive@@QEAAPEBDXZ
; public: void __cdecl NtmsDbList::Map::Set(long,class NtmsDbListItem * __ptr64) __ptr64
?Set@Map@NtmsDbList@@QEAAXJPEAVNtmsDbListItem@@@Z
; public: unsigned long __cdecl NtmsDbObject::SetAdminControlSecurity(void) __ptr64
?SetAdminControlSecurity@NtmsDbObject@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbPartition::SetAllocOption(unsigned long) __ptr64
?SetAllocOption@NtmsDbPartition@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPartition::SetAllocateCount(unsigned long) __ptr64
?SetAllocateCount@NtmsDbPartition@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbMediaPool::SetAllocationPolicy(unsigned long) __ptr64
?SetAllocationPolicy@NtmsDbMediaPool@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetApplication(unsigned short const * __ptr64) __ptr64
?SetApplication@NtmsDbLibWorkItem@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetApplication(unsigned short const * __ptr64) __ptr64
?SetApplication@NtmsDbOpRequest@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetArg1(class NtmsDbGuid const & __ptr64) __ptr64
?SetArg1@NtmsDbOpRequest@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetArg1Type(unsigned long) __ptr64
?SetArg1Type@NtmsDbOpRequest@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetArg2(class NtmsDbGuid const & __ptr64) __ptr64
?SetArg2@NtmsDbOpRequest@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetArg2Type(unsigned long) __ptr64
?SetArg2Type@NtmsDbOpRequest@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetAssocWorkItem(class NtmsDbGuid const & __ptr64) __ptr64
?SetAssocWorkItem@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetAssocWorkItem_Null(void) __ptr64
?SetAssocWorkItem_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbObject::SetAttribute(class NtmsDbDataCtxt * __ptr64,char const * __ptr64,void * __ptr64,unsigned long) __ptr64
?SetAttribute@NtmsDbObject@@QEAAKPEAVNtmsDbDataCtxt@@PEBDPEAXK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetAutoRecovery(short) __ptr64
?SetAutoRecovery@NtmsDbLibrary@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetBarCodeReader(short) __ptr64
?SetBarCodeReader@NtmsDbLibrary@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetBarcode(char const * __ptr64) __ptr64
?SetBarcode@NtmsDbPhysicalMedia@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetBarcodeState(unsigned long) __ptr64
?SetBarcodeState@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetBarcodeW(unsigned short const * __ptr64) __ptr64
?SetBarcodeW@NtmsDbPhysicalMedia@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetBarcode_Null(void) __ptr64
?SetBarcode_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPartition::SetCapacity(union _LARGE_INTEGER) __ptr64
?SetCapacity@NtmsDbPartition@@QEAAKT_LARGE_INTEGER@@@Z
; public: unsigned long __cdecl NtmsDbChanger::SetChangerType(class NtmsDbGuid const & __ptr64) __ptr64
?SetChangerType@NtmsDbChanger@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetCleanerSlot(class NtmsDbGuid const & __ptr64) __ptr64
?SetCleanerSlot@NtmsDbLibrary@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibrary::SetCleanerSlot_Null(void) __ptr64
?SetCleanerSlot_Null@NtmsDbLibrary@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbLibrary::SetCleansRemaining(unsigned long) __ptr64
?SetCleansRemaining@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbDrive::SetComputer(class NtmsDbGuid const & __ptr64) __ptr64
?SetComputer@NtmsDbDrive@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetComputer(unsigned short const * __ptr64) __ptr64
?SetComputer@NtmsDbLibWorkItem@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetComputer(class NtmsDbGuid const & __ptr64) __ptr64
?SetComputer@NtmsDbLibrary@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetComputer(unsigned short const * __ptr64) __ptr64
?SetComputer@NtmsDbOpRequest@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbUIDestination::SetComputer(unsigned short * __ptr64 const) __ptr64
?SetComputer@NtmsDbUIDestination@@QEAAKQEAG@Z
; public: void __cdecl NtmsDbDrive::SetComputer_Null(void) __ptr64
?SetComputer_Null@NtmsDbDrive@@QEAAXXZ
; public: void __cdecl NtmsDbLibrary::SetComputer_Null(void) __ptr64
?SetComputer_Null@NtmsDbLibrary@@QEAAXXZ
; public: void __cdecl NtmsDbPropHeader::SetCount(long) __ptr64
?SetCount@NtmsDbPropHeader@@QEAAXJ@Z
; public: void __cdecl NtmsDbRecordProp::SetData(void * __ptr64) __ptr64
?SetData@NtmsDbRecordProp@@QEAAXPEAX@Z
; protected: virtual void __cdecl NtmsDbChanger::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbChanger@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbChangerType::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbChangerType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbComputer::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbComputer@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDrive::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbDrive@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbDriveType::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbDriveType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEDoor::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbIEDoor@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbIEPort::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbIEPort@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibWorkItem::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbLibWorkItem@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLibrary::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbLibrary@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbLogicalMedia::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbLogicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaPool::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbMediaPool@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbMediaType::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbMediaType@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbObject::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbObject@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbOpRequest::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbOpRequest@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPartition::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbPartition@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbPhysicalMedia::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbPhysicalMedia@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbStorageSlot::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbStorageSlot@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; protected: virtual void __cdecl NtmsDbUIDestination::SetDbObject(class NtmsDbDataCtxt * __ptr64) __ptr64
?SetDbObject@NtmsDbUIDestination@@MEAAXPEAVNtmsDbDataCtxt@@@Z
; public: unsigned long __cdecl NtmsDbMediaPool::SetDeallocationPolicy(unsigned long) __ptr64
?SetDeallocationPolicy@NtmsDbMediaPool@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetDefCleanerSlot(class NtmsDbGuid const & __ptr64) __ptr64
?SetDefCleanerSlot@NtmsDbLibrary@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibrary::SetDefCleanerSlot_Null(void) __ptr64
?SetDefCleanerSlot_Null@NtmsDbLibrary@@QEAAXXZ
; public: void __cdecl NtmsDbProperty::SetDefault(void) __ptr64
?SetDefault@NtmsDbProperty@@QEAAXXZ
; public: void __cdecl NtmsDbRecordProp::SetDefault(void) __ptr64
?SetDefault@NtmsDbRecordProp@@QEAAXXZ
; public: void __cdecl NtmsDbObject::SetDefaultValue(class NtmsDbProperty * __ptr64) __ptr64
?SetDefaultValue@NtmsDbObject@@QEAAXPEAVNtmsDbProperty@@@Z
; public: unsigned long __cdecl NtmsDbDrive::SetDeferDelay(unsigned long) __ptr64
?SetDeferDelay@NtmsDbDrive@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetDensityCode(unsigned long) __ptr64
?SetDensityCode@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbObject::SetDescription(char const * __ptr64) __ptr64
?SetDescription@NtmsDbObject@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbObject::SetDescriptionW(unsigned short const * __ptr64) __ptr64
?SetDescriptionW@NtmsDbObject@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbObject::SetDescription_Null(void) __ptr64
?SetDescription_Null@NtmsDbObject@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChangerType::SetDeviceType(unsigned long) __ptr64
?SetDeviceType@NtmsDbChangerType@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbMediaType::SetDeviceType(unsigned long) __ptr64
?SetDeviceType@NtmsDbMediaType@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetDriveId(class NtmsDbGuid const & __ptr64) __ptr64
?SetDriveId@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetDriveId_Null(void) __ptr64
?SetDriveId_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbDrive::SetDriveLetter(unsigned short const * __ptr64) __ptr64
?SetDriveLetter@NtmsDbDrive@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbDrive::SetDriveLetter_Null(void) __ptr64
?SetDriveLetter_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbDrive::SetDriveNumber(unsigned long) __ptr64
?SetDriveNumber@NtmsDbDrive@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbDrive::SetDriveState(unsigned long) __ptr64
?SetDriveState@NtmsDbDrive@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbDrive::SetDriveType(class NtmsDbGuid const & __ptr64) __ptr64
?SetDriveType@NtmsDbDrive@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetDriveType(unsigned long) __ptr64
?SetDriveType@NtmsDbDriveType@@QEAAKK@Z
; public: void __cdecl NtmsDbList::SetDynamic(int) __ptr64
?SetDynamic@NtmsDbList@@QEAAXH@Z
; public: void __cdecl NtmsDbRecordProp::SetDynamic(void) __ptr64
?SetDynamic@NtmsDbRecordProp@@QEAAXXZ
; public: void __cdecl NtmsDbSelectionSet::SetDynamic(int) __ptr64
?SetDynamic@NtmsDbSelectionSet@@QEAAXH@Z
; public: unsigned long __cdecl NtmsDbObject::SetEnabled(short) __ptr64
?SetEnabled@NtmsDbObject@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetErrorCode(unsigned long) __ptr64
?SetErrorCode@NtmsDbLibWorkItem@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbIEPort::SetExtendState(unsigned long) __ptr64
?SetExtendState@NtmsDbIEPort@@QEAAKK@Z
; public: void __cdecl NtmsDbFile::SetFileStatus(unsigned long) __ptr64
?SetFileStatus@NtmsDbFile@@QEAAXK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFirstChangerNumber(unsigned long) __ptr64
?SetFirstChangerNumber@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFirstDriveNumber(unsigned long) __ptr64
?SetFirstDriveNumber@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFirstPortNumber(unsigned long) __ptr64
?SetFirstPortNumber@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFirstSlotNumber(unsigned long) __ptr64
?SetFirstSlotNumber@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFixedOffline(short) __ptr64
?SetFixedOffline@NtmsDbLibrary@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetFlags(unsigned long) __ptr64
?SetFlags@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbIEPort::SetFullState(unsigned long) __ptr64
?SetFullState@NtmsDbIEPort@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetHomeSlotId(class NtmsDbGuid const & __ptr64) __ptr64
?SetHomeSlotId@NtmsDbPhysicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetHomeSlotId_Null(void) __ptr64
?SetHomeSlotId_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbIEDoor::SetIEDoorNumber(unsigned long) __ptr64
?SetIEDoorNumber@NtmsDbIEDoor@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbIEDoor::SetIEDoorState(unsigned long) __ptr64
?SetIEDoorState@NtmsDbIEDoor@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbIEPort::SetIEPortNumber(unsigned long) __ptr64
?SetIEPortNumber@NtmsDbIEPort@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbChanger::SetInstanceNameW(unsigned short const * __ptr64) __ptr64
?SetInstanceNameW@NtmsDbChanger@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetInstanceNameW(unsigned short const * __ptr64) __ptr64
?SetInstanceNameW@NtmsDbDrive@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetInventoryMethod(unsigned long) __ptr64
?SetInventoryMethod@NtmsDbLibrary@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetInventoryState(unsigned long) __ptr64
?SetInventoryState@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: void __cdecl NtmsDbPropRecordClass::SetKey(class NtmsDbRecordKey & __ptr64) __ptr64
?SetKey@NtmsDbPropRecordClass@@QEAAXAEAVNtmsDbRecordKey@@@Z
; public: unsigned long __cdecl NtmsDbDrive::SetLastCleanedTs(struct _SYSTEMTIME) __ptr64
?SetLastCleanedTs@NtmsDbDrive@@QEAAKU_SYSTEMTIME@@@Z
; public: void __cdecl NtmsDbDrive::SetLastCleanedTs_Null(void) __ptr64
?SetLastCleanedTs_Null@NtmsDbDrive@@QEAAXXZ
; public: void __cdecl NtmsDbRecordProp::SetLength(long) __ptr64
?SetLength@NtmsDbRecordProp@@QEAAXJ@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetLibCurrentMedia(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibCurrentMedia@NtmsDbPhysicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetLibCurrentMedia_Null(void) __ptr64
?SetLibCurrentMedia_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbComputer::SetLibReqCleanTime(long) __ptr64
?SetLibReqCleanTime@NtmsDbComputer@@QEAAKJ@Z
; public: unsigned long __cdecl NtmsDbComputer::SetLibReqFlags(unsigned long) __ptr64
?SetLibReqFlags@NtmsDbComputer@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbChanger::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbChanger@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbDrive::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbDrive@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbIEDoor::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbIEDoor@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbIEPort::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbIEPort@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbStorageSlot::SetLibrary(class NtmsDbGuid const & __ptr64) __ptr64
?SetLibrary@NtmsDbStorageSlot@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetLibraryType(unsigned long) __ptr64
?SetLibraryType@NtmsDbLibrary@@QEAAKK@Z
; public: void __cdecl NtmsDbChanger::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbDrive@@QEAAXXZ
; public: void __cdecl NtmsDbIEDoor::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbIEDoor@@QEAAXXZ
; public: void __cdecl NtmsDbIEPort::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbIEPort@@QEAAXXZ
; public: void __cdecl NtmsDbLibWorkItem::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: void __cdecl NtmsDbStorageSlot::SetLibrary_Null(void) __ptr64
?SetLibrary_Null@NtmsDbStorageSlot@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPartition::SetLifeCycleState(unsigned long) __ptr64
?SetLifeCycleState@NtmsDbPartition@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPartition::SetLogicalmedia(class NtmsDbGuid const & __ptr64) __ptr64
?SetLogicalmedia@NtmsDbPartition@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPartition::SetLogicalmedia_Null(void) __ptr64
?SetLogicalmedia_Null@NtmsDbPartition@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbMediaPool::SetMaxAllocates(unsigned long) __ptr64
?SetMaxAllocates@NtmsDbMediaPool@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbIEPort::SetMaxExtendSecs(unsigned short) __ptr64
?SetMaxExtendSecs@NtmsDbIEPort@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbIEDoor::SetMaxOpenSecs(unsigned short) __ptr64
?SetMaxOpenSecs@NtmsDbIEDoor@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbLogicalMedia::SetMediaPoolId(class NtmsDbGuid const & __ptr64) __ptr64
?SetMediaPoolId@NtmsDbLogicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLogicalMedia::SetMediaPoolId_Null(void) __ptr64
?SetMediaPoolId_Null@NtmsDbLogicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbComputer::SetMediaPoolPolicy(unsigned long) __ptr64
?SetMediaPoolPolicy@NtmsDbComputer@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbComputer::SetMediaRoot(class NtmsDbGuid const & __ptr64) __ptr64
?SetMediaRoot@NtmsDbComputer@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbComputer::SetMediaRoot_Null(void) __ptr64
?SetMediaRoot_Null@NtmsDbComputer@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbMediaPool::SetMediaType(class NtmsDbGuid) __ptr64
?SetMediaType@NtmsDbMediaPool@@QEAAKVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbMediaType::SetMediaType(unsigned long) __ptr64
?SetMediaType@NtmsDbMediaType@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetMediaType(class NtmsDbGuid) __ptr64
?SetMediaType@NtmsDbPhysicalMedia@@QEAAKVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetMediaTypeCode(unsigned long) __ptr64
?SetMediaTypeCode@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetMessage(unsigned short const * __ptr64) __ptr64
?SetMessage@NtmsDbOpRequest@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetMessageA(char const * __ptr64) __ptr64
?SetMessageA@NtmsDbOpRequest@@QEAAKPEBD@Z
; public: int __cdecl NtmsDbObject::SetModified(long) __ptr64
?SetModified@NtmsDbObject@@QEAAHJ@Z
; public: void __cdecl NtmsDbRecordProp::SetModified(void) __ptr64
?SetModified@NtmsDbRecordProp@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPartition::SetMountCount(unsigned long) __ptr64
?SetMountCount@NtmsDbPartition@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetMountedPartition(class NtmsDbGuid const & __ptr64) __ptr64
?SetMountedPartition@NtmsDbPhysicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbMediaPool::SetMpoolType(unsigned long) __ptr64
?SetMpoolType@NtmsDbMediaPool@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbObject::SetName(char const * __ptr64) __ptr64
?SetName@NtmsDbObject@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbObject::SetNameW(unsigned short const * __ptr64) __ptr64
?SetNameW@NtmsDbObject@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbObject::SetName_Null(void) __ptr64
?SetName_Null@NtmsDbObject@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbDrive::SetNeedsCleaning(short) __ptr64
?SetNeedsCleaning@NtmsDbDrive@@QEAAKF@Z
; public: void __cdecl NtmsDbList::Map::SetNext(class NtmsDbList::Map * __ptr64) __ptr64
?SetNext@Map@NtmsDbList@@QEAAXPEAV12@@Z
; public: unsigned long __cdecl NtmsDbMediaType::SetNextSequence(long) __ptr64
?SetNextSequence@NtmsDbMediaType@@QEAAKJ@Z
; public: void __cdecl NtmsDatabase::SetNotificationHandler(void (__cdecl*)(int,short,class NtmsDbGuid const & __ptr64,int)) __ptr64
?SetNotificationHandler@NtmsDatabase@@QEAAXP6AXHFAEBVNtmsDbGuid@@H@Z@Z
; public: void __cdecl NtmsDbRecordProp::SetNull(void) __ptr64
?SetNull@NtmsDbRecordProp@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChanger::SetNumber(unsigned long) __ptr64
?SetNumber@NtmsDbChanger@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetNumberOfHeads(unsigned long) __ptr64
?SetNumberOfHeads@NtmsDbDriveType@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbMediaType::SetNumberOfSides(unsigned long) __ptr64
?SetNumberOfSides@NtmsDbMediaType@@QEAAKK@Z
; public: void __cdecl NtmsDbSelectionSet::SetObjectGuid(long,class NtmsDbGuid const & __ptr64) __ptr64
?SetObjectGuid@NtmsDbSelectionSet@@QEAAXJAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbObject::SetObjectId(class NtmsDbGuid const & __ptr64) __ptr64
?SetObjectId@NtmsDbObject@@QEAAKAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbObject::SetObjectId(char const * __ptr64) __ptr64
?SetObjectId@NtmsDbObject@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbPartition::SetOmidLabelId(unsigned char const * __ptr64,unsigned long) __ptr64
?SetOmidLabelId@NtmsDbPartition@@QEAAKPEBEK@Z
; public: unsigned long __cdecl NtmsDbPartition::SetOmidLabelInfo(unsigned short const * __ptr64) __ptr64
?SetOmidLabelInfo@NtmsDbPartition@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbPartition::SetOmidLabelType(unsigned short const * __ptr64) __ptr64
?SetOmidLabelType@NtmsDbPartition@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbComputer::SetOpReqCleanTime(long) __ptr64
?SetOpReqCleanTime@NtmsDbComputer@@QEAAKJ@Z
; public: unsigned long __cdecl NtmsDbComputer::SetOpReqFlags(unsigned long) __ptr64
?SetOpReqFlags@NtmsDbComputer@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetOperationCode(unsigned long) __ptr64
?SetOperationCode@NtmsDbLibWorkItem@@QEAAKK@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetOperationErrorCode_Null(void) __ptr64
?SetOperationErrorCode_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetOperationOption(unsigned long) __ptr64
?SetOperationOption@NtmsDbLibWorkItem@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbObject::SetOperational(unsigned long) __ptr64
?SetOperational@NtmsDbObject@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbMediaPool::SetParent(class NtmsDbGuid const & __ptr64) __ptr64
?SetParent@NtmsDbMediaPool@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbMediaPool::SetParent_Null(void) __ptr64
?SetParent_Null@NtmsDbMediaPool@@QEAAXXZ
; public: void __cdecl NtmsDbLogicalMedia::SetPartition(class NtmsDbGuid const & __ptr64) __ptr64
?SetPartition@NtmsDbLogicalMedia@@QEAAXAEBVNtmsDbGuid@@@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetPartitionId(class NtmsDbGuid const & __ptr64) __ptr64
?SetPartitionId@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetPartitionId_Null(void) __ptr64
?SetPartitionId_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPartition::SetPartitionNumber(short) __ptr64
?SetPartitionNumber@NtmsDbPartition@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbChanger::SetPathName(char const * __ptr64) __ptr64
?SetPathName@NtmsDbChanger@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbDrive::SetPathName(char const * __ptr64) __ptr64
?SetPathName@NtmsDbDrive@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbChanger::SetPathNameW(unsigned short const * __ptr64) __ptr64
?SetPathNameW@NtmsDbChanger@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetPathNameW(unsigned short const * __ptr64) __ptr64
?SetPathNameW@NtmsDbDrive@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbChanger::SetPathName_Null(void) __ptr64
?SetPathName_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetPathName_Null(void) __ptr64
?SetPathName_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetPhysLocId(class NtmsDbGuid const & __ptr64) __ptr64
?SetPhysLocId@NtmsDbPhysicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetPhysLocId_Null(void) __ptr64
?SetPhysLocId_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetPhysLocType(unsigned long) __ptr64
?SetPhysLocType@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetPhysMediaErrorCode(long) __ptr64
?SetPhysMediaErrorCode@NtmsDbPhysicalMedia@@QEAAKJ@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetPhysMediaId(class NtmsDbGuid const & __ptr64) __ptr64
?SetPhysMediaId@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetPhysMediaId_Null(void) __ptr64
?SetPhysMediaId_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetPhysMediaState(unsigned long) __ptr64
?SetPhysMediaState@NtmsDbPhysicalMedia@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbPartition::SetPhysicalmedia(class NtmsDbGuid const & __ptr64) __ptr64
?SetPhysicalmedia@NtmsDbPartition@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPartition::SetPhysicalmedia_Null(void) __ptr64
?SetPhysicalmedia_Null@NtmsDbPartition@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetPoolMember(class NtmsDbGuid const & __ptr64) __ptr64
?SetPoolMember@NtmsDbPhysicalMedia@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbPhysicalMedia::SetPoolMember_Null(void) __ptr64
?SetPoolMember_Null@NtmsDbPhysicalMedia@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetPriority(unsigned long) __ptr64
?SetPriority@NtmsDbLibWorkItem@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbChangerType::SetProduct(char const * __ptr64) __ptr64
?SetProduct@NtmsDbChangerType@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetProduct(char const * __ptr64) __ptr64
?SetProduct@NtmsDbDriveType@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbChangerType::SetProductW(unsigned short const * __ptr64) __ptr64
?SetProductW@NtmsDbChangerType@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetProductW(unsigned short const * __ptr64) __ptr64
?SetProductW@NtmsDbDriveType@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbPropHeader::SetPropCode(short) __ptr64
?SetPropCode@NtmsDbPropHeader@@QEAAXF@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetProtected(int) __ptr64
?SetProtected@NtmsDbLibWorkItem@@QEAAKH@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetRequest(unsigned long) __ptr64
?SetRequest@NtmsDbOpRequest@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbChanger::SetRevision(char const * __ptr64) __ptr64
?SetRevision@NtmsDbChanger@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbDrive::SetRevision(char const * __ptr64) __ptr64
?SetRevision@NtmsDbDrive@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbChanger::SetRevisionW(unsigned short const * __ptr64) __ptr64
?SetRevisionW@NtmsDbChanger@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetRevisionW(unsigned short const * __ptr64) __ptr64
?SetRevisionW@NtmsDbDrive@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetSavedPartitionId(class NtmsDbGuid const & __ptr64) __ptr64
?SetSavedPartitionId@NtmsDbDrive@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbDrive::SetSavedPartitionId_Null(void) __ptr64
?SetSavedPartitionId_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChanger::SetScsiBus(unsigned short) __ptr64
?SetScsiBus@NtmsDbChanger@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetScsiBus(unsigned short) __ptr64
?SetScsiBus@NtmsDbDrive@@QEAAKG@Z
; public: void __cdecl NtmsDbChanger::SetScsiBus_Null(void) __ptr64
?SetScsiBus_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetScsiBus_Null(void) __ptr64
?SetScsiBus_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChanger::SetScsiLun(unsigned short) __ptr64
?SetScsiLun@NtmsDbChanger@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetScsiLun(unsigned short) __ptr64
?SetScsiLun@NtmsDbDrive@@QEAAKG@Z
; public: void __cdecl NtmsDbChanger::SetScsiLun_Null(void) __ptr64
?SetScsiLun_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetScsiLun_Null(void) __ptr64
?SetScsiLun_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChanger::SetScsiPort(unsigned short) __ptr64
?SetScsiPort@NtmsDbChanger@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetScsiPort(unsigned short) __ptr64
?SetScsiPort@NtmsDbDrive@@QEAAKG@Z
; public: void __cdecl NtmsDbChanger::SetScsiPort_Null(void) __ptr64
?SetScsiPort_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetScsiPort_Null(void) __ptr64
?SetScsiPort_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbChanger::SetScsiTarget(unsigned short) __ptr64
?SetScsiTarget@NtmsDbChanger@@QEAAKG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetScsiTarget(unsigned short) __ptr64
?SetScsiTarget@NtmsDbDrive@@QEAAKG@Z
; public: void __cdecl NtmsDbChanger::SetScsiTarget_Null(void) __ptr64
?SetScsiTarget_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetScsiTarget_Null(void) __ptr64
?SetScsiTarget_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbObject::SetSecurityDescriptor(void * __ptr64,unsigned long) __ptr64
?SetSecurityDescriptor@NtmsDbObject@@QEAAKPEAXK@Z
; public: unsigned long __cdecl NtmsDbPhysicalMedia::SetSequenceNumber(unsigned short const * __ptr64) __ptr64
?SetSequenceNumber@NtmsDbPhysicalMedia@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbChanger::SetSerialNumber(char const * __ptr64) __ptr64
?SetSerialNumber@NtmsDbChanger@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbDrive::SetSerialNumber(char const * __ptr64) __ptr64
?SetSerialNumber@NtmsDbDrive@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbChanger::SetSerialNumberW(unsigned short const * __ptr64) __ptr64
?SetSerialNumberW@NtmsDbChanger@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDrive::SetSerialNumberW(unsigned short const * __ptr64) __ptr64
?SetSerialNumberW@NtmsDbDrive@@QEAAKPEBG@Z
; public: void __cdecl NtmsDbChanger::SetSerialNumber_Null(void) __ptr64
?SetSerialNumber_Null@NtmsDbChanger@@QEAAXXZ
; public: void __cdecl NtmsDbDrive::SetSerialNumber_Null(void) __ptr64
?SetSerialNumber_Null@NtmsDbDrive@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbPartition::SetSide(unsigned short) __ptr64
?SetSide@NtmsDbPartition@@QEAAKG@Z
; public: void __cdecl NtmsDbList::Map::SetSize(long) __ptr64
?SetSize@Map@NtmsDbList@@QEAAXJ@Z
; public: void __cdecl NtmsDbPropHeader::SetSize(short) __ptr64
?SetSize@NtmsDbPropHeader@@QEAAXF@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetSlotId(class NtmsDbGuid const & __ptr64) __ptr64
?SetSlotId@NtmsDbLibWorkItem@@QEAAKAEBVNtmsDbGuid@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetSlotId_Null(void) __ptr64
?SetSlotId_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbStorageSlot::SetSlotNumber(unsigned long) __ptr64
?SetSlotNumber@NtmsDbStorageSlot@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbStorageSlot::SetSlotState(unsigned long) __ptr64
?SetSlotState@NtmsDbStorageSlot@@QEAAKK@Z
; public: void __cdecl NtmsDbFile::SetState(unsigned long) __ptr64
?SetState@NtmsDbFile@@QEAAXK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetState(unsigned long) __ptr64
?SetState@NtmsDbLibWorkItem@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetState(unsigned long) __ptr64
?SetState@NtmsDbOpRequest@@QEAAKK@Z
; public: void __cdecl NtmsDbString::SetString(unsigned short const * __ptr64,unsigned long) __ptr64
?SetString@NtmsDbString@@QEAAXPEBGK@Z
; public: unsigned long __cdecl NtmsDbLibrary::SetSupportDrvClean(short) __ptr64
?SetSupportDrvClean@NtmsDbLibrary@@QEAAKF@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetTimeCompleted(struct _SYSTEMTIME) __ptr64
?SetTimeCompleted@NtmsDbLibWorkItem@@QEAAKU_SYSTEMTIME@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetTimeCompleted_Null(void) __ptr64
?SetTimeCompleted_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetTimeQueued(struct _SYSTEMTIME) __ptr64
?SetTimeQueued@NtmsDbLibWorkItem@@QEAAKU_SYSTEMTIME@@@Z
; public: void __cdecl NtmsDbLibWorkItem::SetTimeQueued_Null(void) __ptr64
?SetTimeQueued_Null@NtmsDbLibWorkItem@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbOpRequest::SetTimeSubmitted(struct _SYSTEMTIME) __ptr64
?SetTimeSubmitted@NtmsDbOpRequest@@QEAAKU_SYSTEMTIME@@@Z
; public: void __cdecl NtmsDbPropGuid::SetUpToDate(void) __ptr64
?SetUpToDate@NtmsDbPropGuid@@QEAAXXZ
; public: unsigned long __cdecl NtmsDbDrive::SetUseCount(unsigned long) __ptr64
?SetUseCount@NtmsDbDrive@@QEAAKK@Z
; public: unsigned long __cdecl NtmsDbLibWorkItem::SetUser(unsigned short const * __ptr64) __ptr64
?SetUser@NtmsDbLibWorkItem@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbOpRequest::SetUser(unsigned short const * __ptr64) __ptr64
?SetUser@NtmsDbOpRequest@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbChangerType::SetVendor(char const * __ptr64) __ptr64
?SetVendor@NtmsDbChangerType@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetVendor(char const * __ptr64) __ptr64
?SetVendor@NtmsDbDriveType@@QEAAKPEBD@Z
; public: unsigned long __cdecl NtmsDbChangerType::SetVendorW(unsigned short const * __ptr64) __ptr64
?SetVendorW@NtmsDbChangerType@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbDriveType::SetVendorW(unsigned short const * __ptr64) __ptr64
?SetVendorW@NtmsDbDriveType@@QEAAKPEBG@Z
; public: unsigned long __cdecl NtmsDbMediaType::SetWriteCharacteristics(unsigned long) __ptr64
?SetWriteCharacteristics@NtmsDbMediaType@@QEAAKK@Z
; public: static void __cdecl NtmsDbDataCtxt::Shutdown(void)
?Shutdown@NtmsDbDataCtxt@@SAXXZ
; public: unsigned short const  __cdecl NtmsDbPartition::Side(void)const  __ptr64
?Side@NtmsDbPartition@@QEBA?BGXZ
; public: long __cdecl NtmsDbList::Map::Size(void)const  __ptr64
?Size@Map@NtmsDbList@@QEBAJXZ
; public: short __cdecl NtmsDbPropHeader::Size(void)const  __ptr64
?Size@NtmsDbPropHeader@@QEBAFXZ
; public: unsigned long __cdecl NtmsDbRecordProp::Size(void)const  __ptr64
?Size@NtmsDbRecordProp@@QEBAKXZ
; public: long __cdecl NtmsDbLibWorkItem::SlotId_IsNotNull(void) __ptr64
?SlotId_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: class NtmsDbGuid const & __ptr64 __cdecl NtmsDbLibWorkItem::SlotId_n(void)const  __ptr64
?SlotId_n@NtmsDbLibWorkItem@@QEBAAEBVNtmsDbGuid@@XZ
; public: unsigned long const  __cdecl NtmsDbStorageSlot::SlotNumber(void)const  __ptr64
?SlotNumber@NtmsDbStorageSlot@@QEBA?BKXZ
; public: unsigned long const  __cdecl NtmsDbStorageSlot::SlotState(void)const  __ptr64
?SlotState@NtmsDbStorageSlot@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbDataCtxt::StartTransaction(void) __ptr64
?StartTransaction@NtmsDbDataCtxt@@QEAAKXZ
; public: unsigned long __cdecl NtmsDbFile::State(void) __ptr64
?State@NtmsDbFile@@QEAAKXZ
; public: unsigned long const  __cdecl NtmsDbLibWorkItem::State(void)const  __ptr64
?State@NtmsDbLibWorkItem@@QEBA?BKXZ
; public: unsigned long __cdecl NtmsDbOpRequest::State(void)const  __ptr64
?State@NtmsDbOpRequest@@QEBAKXZ
; public: unsigned long __cdecl NtmsDbSelectionSet::Status(void)const  __ptr64
?Status@NtmsDbSelectionSet@@QEBAKXZ
; public: unsigned long __cdecl NtmsDbLibrary::StorageSlots(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64) __ptr64
?StorageSlots@NtmsDbLibrary@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@@Z
; public: unsigned int __cdecl NtmsDbRecordProp::Store(unsigned char * __ptr64) __ptr64
?Store@NtmsDbRecordProp@@QEAAIPEAE@Z
; public: char * __ptr64 __cdecl NtmsDbGuid::StrGuid(char * __ptr64)const  __ptr64
?StrGuid@NtmsDbGuid@@QEBAPEADPEAD@Z
; public: unsigned char * __ptr64 __cdecl NtmsDbGuid::StrGuid(unsigned char * __ptr64)const  __ptr64
?StrGuid@NtmsDbGuid@@QEBAPEAEPEAE@Z
; public: unsigned short * __ptr64 __cdecl NtmsDbGuid::StrGuidW(unsigned short * __ptr64)const  __ptr64
?StrGuidW@NtmsDbGuid@@QEBAPEAGPEAG@Z
; public: unsigned long __cdecl NtmsDbObjTypeDef::SuperType(void)const  __ptr64
?SuperType@NtmsDbObjTypeDef@@QEBAKXZ
; public: short const  __cdecl NtmsDbLibrary::SupportDrvClean(void)const  __ptr64
?SupportDrvClean@NtmsDbLibrary@@QEBA?BFXZ
; public: short __cdecl NtmsDbRecordKey::Table(void)const  __ptr64
?Table@NtmsDbRecordKey@@QEBAFXZ
; public: long __cdecl NtmsDbLibWorkItem::TimeCompleted_IsNotNull(void) __ptr64
?TimeCompleted_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: struct _SYSTEMTIME const  __cdecl NtmsDbLibWorkItem::TimeCompleted_n(void)const  __ptr64
?TimeCompleted_n@NtmsDbLibWorkItem@@QEBA?BU_SYSTEMTIME@@XZ
; public: long __cdecl NtmsDbLibWorkItem::TimeQueued_IsNotNull(void) __ptr64
?TimeQueued_IsNotNull@NtmsDbLibWorkItem@@QEAAJXZ
; public: struct _SYSTEMTIME const  __cdecl NtmsDbLibWorkItem::TimeQueued_n(void)const  __ptr64
?TimeQueued_n@NtmsDbLibWorkItem@@QEBA?BU_SYSTEMTIME@@XZ
; public: struct _SYSTEMTIME const  __cdecl NtmsDbOpRequest::TimeSubmitted(void)const  __ptr64
?TimeSubmitted@NtmsDbOpRequest@@QEBA?BU_SYSTEMTIME@@XZ
; public: class NtmsTransaction * __ptr64 __cdecl NtmsDbDataCtxt::Transaction(void) __ptr64
?Transaction@NtmsDbDataCtxt@@QEAAPEAVNtmsTransaction@@XZ
; public: class NtmsDbRecordType * __ptr64 __cdecl NtmsDbObjTypeDef::Type(void)const  __ptr64
?Type@NtmsDbObjTypeDef@@QEBAPEAVNtmsDbRecordType@@XZ
; public: class NtmsDbPropDataType const & __ptr64 __cdecl NtmsDbPropHeader::Type(void)const  __ptr64
?Type@NtmsDbPropHeader@@QEBAAEBVNtmsDbPropDataType@@XZ
; public: unsigned long __cdecl NtmsDbPropertyValue::Type(void) __ptr64
?Type@NtmsDbPropertyValue@@QEAAKXZ
; public: class NtmsDbPropDataType const & __ptr64 __cdecl NtmsDbRecordProp::Type(void)const  __ptr64
?Type@NtmsDbRecordProp@@QEBAAEBVNtmsDbPropDataType@@XZ
; public: char const * __ptr64 __cdecl NtmsDbObjTypeDef::TypeName(void)const  __ptr64
?TypeName@NtmsDbObjTypeDef@@QEBAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbObjTypeDef::TypeNameAbbrev(void)const  __ptr64
?TypeNameAbbrev@NtmsDbObjTypeDef@@QEBAPEBDXZ
; public: virtual unsigned long __cdecl NtmsDbObject::Update(class NtmsDbDataCtxt * __ptr64) __ptr64
?Update@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: virtual unsigned long __cdecl NtmsDbObject::UpdateRegardless(class NtmsDbDataCtxt * __ptr64) __ptr64
?UpdateRegardless@NtmsDbObject@@UEAAKPEAVNtmsDbDataCtxt@@@Z
; public: unsigned long const  __cdecl NtmsDbDrive::UseCount(void)const  __ptr64
?UseCount@NtmsDbDrive@@QEBA?BKXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbLibWorkItem::User(void)const  __ptr64
?User@NtmsDbLibWorkItem@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbOpRequest::User(void)const  __ptr64
?User@NtmsDbOpRequest@@QEBAPEBGXZ
; public: void __cdecl NtmsDbList::Map::Validate(void) __ptr64
?Validate@Map@NtmsDbList@@QEAAXXZ
; protected: virtual unsigned int __cdecl NtmsDbObject::ValueIsNotNull(long)const  __ptr64
?ValueIsNotNull@NtmsDbObject@@MEBAIJ@Z
; public: char const * __ptr64 __cdecl NtmsDbChangerType::Vendor(void) __ptr64
?Vendor@NtmsDbChangerType@@QEAAPEBDXZ
; public: char const * __ptr64 __cdecl NtmsDbDriveType::Vendor(void) __ptr64
?Vendor@NtmsDbDriveType@@QEAAPEBDXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbChangerType::VendorW(void)const  __ptr64
?VendorW@NtmsDbChangerType@@QEBAPEBGXZ
; public: unsigned short const * __ptr64 __cdecl NtmsDbDriveType::VendorW(void)const  __ptr64
?VendorW@NtmsDbDriveType@@QEBAPEBGXZ
; public: void __cdecl NtmsDbGuid::Win32Guid(struct _GUID & __ptr64)const  __ptr64
?Win32Guid@NtmsDbGuid@@QEBAXAEAU_GUID@@@Z
; public: unsigned long __cdecl NtmsDbObject::WriteAttribute(class NtmsDbPropertyValue & __ptr64) __ptr64
?WriteAttribute@NtmsDbObject@@QEAAKAEAVNtmsDbPropertyValue@@@Z
; public: unsigned long const  __cdecl NtmsDbMediaType::WriteCharacteristics(void)const  __ptr64
?WriteCharacteristics@NtmsDbMediaType@@QEBA?BKXZ
; protected: void __cdecl NtmsDbObject::WriteObjectRecord(class NtmsDbDataCtxt * __ptr64,class NtmsDbRecordKey & __ptr64,class NtmsDbRecordRev & __ptr64,class NtmsDbRecordPropList * __ptr64) __ptr64
?WriteObjectRecord@NtmsDbObject@@IEAAXPEAVNtmsDbDataCtxt@@AEAVNtmsDbRecordKey@@AEAVNtmsDbRecordRev@@PEAVNtmsDbRecordPropList@@@Z
; public: struct _GUID const & __ptr64 __cdecl NtmsDbGuid::_id(void)const  __ptr64
?_id@NtmsDbGuid@@QEBAAEBU_GUID@@XZ
; public: unsigned long __cdecl NtmsDbObject::countRelatedObjects(long) __ptr64
?countRelatedObjects@NtmsDbObject@@QEAAKJ@Z
; public: unsigned long __cdecl NtmsDbObject::getRelatedObjects(class NtmsDbDataCtxt * __ptr64,class NtmsDbSelectionSet & __ptr64,long) __ptr64
?getRelatedObjects@NtmsDbObject@@QEAAKPEAVNtmsDbDataCtxt@@AEAVNtmsDbSelectionSet@@J@Z
; public: char const * __ptr64 __cdecl NtmsDbTypeGuid::id(void)const  __ptr64
?id@NtmsDbTypeGuid@@QEBAPEBDXZ
; private: static void * __ptr64  __ptr64 NtmsDbDataCtxt::m_ChangeMutex
?m_ChangeMutex@NtmsDbDataCtxt@@0PEAXEA DATA
; public: static class ChangeRegistration * __ptr64  __ptr64 NtmsDbDataCtxt::m_ChangeTable
?m_ChangeTable@NtmsDbDataCtxt@@2PEAVChangeRegistration@@EA DATA
; private: static class NtmsDbRecordType  NtmsDbChanger::m_Type
?m_Type@NtmsDbChanger@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbChangerType::m_Type
?m_Type@NtmsDbChangerType@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbComputer::m_Type
?m_Type@NtmsDbComputer@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbDrive::m_Type
?m_Type@NtmsDbDrive@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbDriveType::m_Type
?m_Type@NtmsDbDriveType@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbIEDoor::m_Type
?m_Type@NtmsDbIEDoor@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbIEPort::m_Type
?m_Type@NtmsDbIEPort@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbLibWorkItem::m_Type
?m_Type@NtmsDbLibWorkItem@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbLibrary::m_Type
?m_Type@NtmsDbLibrary@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbLogicalMedia::m_Type
?m_Type@NtmsDbLogicalMedia@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbMediaPool::m_Type
?m_Type@NtmsDbMediaPool@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbMediaType::m_Type
?m_Type@NtmsDbMediaType@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbObject::m_Type
?m_Type@NtmsDbObject@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbOpRequest::m_Type
?m_Type@NtmsDbOpRequest@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbPartition::m_Type
?m_Type@NtmsDbPartition@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbPhysicalMedia::m_Type
?m_Type@NtmsDbPhysicalMedia@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbStorageSlot::m_Type
?m_Type@NtmsDbStorageSlot@@0VNtmsDbRecordType@@A DATA
; private: static class NtmsDbRecordType  NtmsDbUIDestination::m_Type
?m_Type@NtmsDbUIDestination@@0VNtmsDbRecordType@@A DATA
; private: static int  NtmsDbDataCtxt::m_locked
?m_locked@NtmsDbDataCtxt@@0HA DATA
; public: char const * __ptr64 __cdecl NtmsDbError::messageString(void)const  __ptr64
?messageString@NtmsDbError@@QEBAPEBDXZ
