Создаем набор логических записей, которые
Листинг 24
Блокирование логических записей // Файл loglock\loglock.cpp // // (C) A. Frolov, 1993 // ===================================================
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define BYTE unsigned char #define WORD unsigned int
extern "C" int GetNetWareShellVersion(char *,char *, char *);
extern "C" int LogLogicalRecord(char *, BYTE, WORD);
extern "C" int LockLogicalRecordSet(WORD);
extern "C" void ReleaseLogicalRecordSet(void);
extern "C" void ClearLogicalRecordSet(void);
void main(void) {
char MajorVersion=0; char MinorVersion=0; char Revision=0;
char LogicalRecordName[100];
int ccode;
printf("\n*LOGLOCK* (C) Frolov A., 1993\n");
// Проверяем наличие сетевой оболочки
asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision);
asm pop si
if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n");
return; }
// Создаем набор логических записей, которые будут заблокированы
for(;;) { printf("\nВведите имя логической записи или '-':");
gets(LogicalRecordName);
if(LogicalRecordName[0] == '-') break;
// Добавляем логическую запись в набор
ccode = LogLogicalRecord(LogicalRecordName, 0, 0);
if(!ccode) printf("Логическая запись %s добавлена к списку\n", LogicalRecordName);
else printf("Ошибка при добавлении %02.2X\n", ccode);
}
// Блокируем набор логических записей
ccode = LockLogicalRecordSet(0);
if(!ccode) printf("Логические записи заблокированы\n");
else printf("Ошибка при блокировании " "логических записей %02.2X\n", ccode);
printf("Для разблокирования логических записей " " нажмите любую клавишу\n");
getch();
// Разблокируем набор логических записей
ReleaseLogicalRecordSet();
// Удаляем набор логических записей
ClearLogicalRecordSet();
}
Содержание Назад Вперед