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