📄 bindery.c
字号:
property_name, member_object_name, member_object_type);
if (return_code==0)
printf("\n\n Success,Press any key to continue!" );
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 17:
printf("\n\n Delete bindery object from set\n\n\n");
printf("Please input the following datas: ");
printf("\n\nobject_name:");
scanf("%s",object_name);
printf("\nobject_type(1-user/2-group):");
scanf("%d",&object_type);
printf("\nproperty_name:");
scanf("%s",property_name);
printf("\nmember_object_name:");
scanf("%s",member_object_name);
printf("\nmember_object_type(1-user/2-group):");
scanf("%d",&member_object_type);
return_code=DeleteBinderyObjectFromSet(object_name, object_type,
property_name, member_object_name, member_object_type);
if (return_code==0)
printf("\n\n Success,Press any key to continue!" );
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 18:
printf("\n\n Is bindery object in set\n\n\n");
printf("Please input the following datas: ");
printf("\n\nobject_name:");
scanf("%s",object_name);
printf("\nobject_type(1-user/2-group):");
scanf("%d",&object_type);
printf("\nproperty_name:");
scanf("%s",property_name);
printf("\nmember_object_name:");
scanf("%s",member_object_name);
printf("\nmember_object_type(1-user/2-group):");
scanf("%d",&member_object_type);
return_code=ISBinderyObjectInSet(object_name, object_type,
property_name, member_object_name, member_object_type);
if (return_code==0)
printf("\n\n Success,Press any key to continue!" );
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 19:
printf("\n\n Close bindery\n\n\n");
return_code=CloseBindery();
if (return_code==0)
printf("\n\n Success,Press any key to continue!" );
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 20:
printf("\n\n Open bindery\n\n\n");
return_code=OpenBindery();
if (return_code==0)
printf("\n\n Success,Press any key to continue!" );
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 21:
printf("\n\n Get bindery access level\n\n\n");
return_code=GetBinderyAccessLevel(&access_level,&object_ID);
if (return_code==0)
{printf("\nAccess_level:%c",access_level);
printf("\n\nobject_ID:%lx",object_ID );
printf("\n\n Success,Press any key to continue!" );
}
else
printf("\n\n Failure,Press any key to continue!");
ch=getch();
break;
case 22:exitsign=1;
}
}
}
int IntSwap(unsigned int SwapInt)
{
unsigned int mask1,mask2;
mask1 = SwapInt << 8;
mask2 = SwapInt >> 8;
return (mask1 | mask2);
}
long LongSwap(long SwapLong)
{
unsigned int mask1,mask2;
union LongToWord tmp;
tmp.dw = SwapLong;
mask1 = IntSwap(tmp.w.HiWord);
mask2 = IntSwap(tmp.w.LoWord);
tmp.w.HiWord = mask1;
tmp.w.LoWord = mask2;
return (long)(tmp.dw);
}
int AddBinderyObjectToSet(objectName, objectType,
propertyName, memberName, memberType)
char *objectName;
char *propertyName;
char *memberName;
int objectType;
int memberType;
{
char requestBuf[119], replyBuf[2];
int objLength, propLength, memLength, offset;
requestBuf[2] = 0x41;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
objLength = strlen(objectName);
propLength = strlen(propertyName);
memLength = strlen(memberName);
requestBuf[5] = objLength;
memmove(requestBuf + 6, objectName, objLength);
offset = objLength + 6;
requestBuf[offset++] = propLength;
memmove(requestBuf + offset, propertyName, propLength);
offset = objLength + propLength + 7;
*((int *)(requestBuf + offset)) = IntSwap(memberType);
offset += 2;
requestBuf[offset++] = memLength;
memmove(requestBuf + offset, memberName, memLength);
*((int *)requestBuf) = objLength + propLength + memLength + 8;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int ChangebinderyObjectPassword(objectName, objectType,
oldPassword, newPassword)
char *objectName;
int objectType;
char *oldPassword;
char *newPassword;
{
char requestBuf[309], replyBuf[2];
int objLength, oldpswLength, newpswLength, offset;
requestBuf[2] = 0x40;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
objLength = strlen(objectName);
oldpswLength = strlen(oldPassword);
newpswLength = strlen(newPassword);
requestBuf[5] = objLength;
memmove(requestBuf + 6, objectName, objLength);
offset = objLength + 6;
requestBuf[offset++] = oldpswLength;
memmove(requestBuf + offset, oldPassword, oldpswLength);
offset = objLength + oldpswLength + 7;
requestBuf[offset++] = newpswLength;
memmove(requestBuf + offset, newPassword, newpswLength);
*((int *)requestBuf) = objLength + oldpswLength + newpswLength + 8;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int CreateBinderyObject(objectName, objectType, objectFlag, objectSecurity)
char *objectName;
int objectType;
char objectFlag;
char objectSecurity;
{
char requestBuf[55], replyBuf[2];
int len;
if ( strlen( objectName) > 47 )
return(0xEF);
requestBuf[2] = 50;
requestBuf[3] = objectFlag;
requestBuf[4] = objectSecurity;
*((int *)(requestBuf + 5)) = IntSwap(objectType);
len = strlen(objectName);
requestBuf[7] = len;
memmove(requestBuf + 8, objectName, len);
*((int *)requestBuf) = len + 6;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int ChangeBinderySecurity(objectName, objectType, objectSecurity)
char *objectName;
int objectType;
char objectSecurity;
{
char requestBuf[54], replyBuf[2];
int len;
if ( strlen( objectName) > 47 )
return(0xEF);
requestBuf[2] = 56;
requestBuf[3] = objectSecurity;
*((int *)(requestBuf + 4)) = IntSwap(objectType);
len = strlen(objectName);
requestBuf[6] = len;
memmove(requestBuf + 7, objectName, len);
*((int *)requestBuf) = len + 5;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int CreateProperty(objectName, objectType, propertyName,
propertyFlags, propertySecurity)
char *objectName;
char *propertyName;
int objectType;
char propertyFlags;
char propertySecurity;
{
char requestBuf[71], replyBuf[2];
int offset, objectlen, propertylen, ccode;
requestBuf[2] = 0x39;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
objectlen = (char)strlen(objectName);
requestBuf[5] = (char)objectlen;
memmove(requestBuf + 6, objectName, objectlen);
offset = objectlen + 6;
requestBuf[offset++] = propertyFlags;
requestBuf[offset++] = propertySecurity;
propertylen = (char)strlen(propertyName);
requestBuf[offset++] = (char)propertylen;
memmove((requestBuf + offset), propertyName, propertylen);
*((int *)requestBuf) = propertylen + objectlen + 7;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int ChangePropertySecurity(objectName, objectType, propertyName,propertySecurity)
char *objectName;
char *propertyName;
int objectType;
char propertySecurity;
{
char requestBuf[70], replyBuf[2];
int offset, objectlen, propertylen, ccode;
requestBuf[2] = 0x3b;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
objectlen = (char)strlen(objectName);
requestBuf[5] = (char)objectlen;
memmove(requestBuf + 6, objectName, objectlen);
offset = objectlen + 6;
requestBuf[offset++] = propertySecurity;
propertylen = (char)strlen(propertyName);
requestBuf[offset++] = (char)propertylen;
memmove((requestBuf + offset), propertyName, propertylen);
*((int *)requestBuf) = propertylen + objectlen + 6;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int DeleteBinderyObject(objectName, objectType)
char *objectName;
int objectType;
{
char requestBuf[53], replyBuf[2];
int len;
requestBuf[2] = 51;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
len = strlen(objectName);
requestBuf[5] = len;
memmove(requestBuf + 6, objectName, len);
*((int *)requestBuf) = len + 4;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int DeleteBinderyObjectFromSet(objectName, objectType,
propertyName, memberName, memberType)
char *objectName;
char *propertyName;
char *memberName;
int objectType;
int memberType;
{
char requestBuf[119], replyBuf[2];
int objLength, propLength, memLength, offset;
requestBuf[2] = 0x42;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
objLength = strlen(objectName);
propLength = strlen(propertyName);
memLength = strlen(memberName);
requestBuf[5] = objLength;
memmove(requestBuf + 6, objectName, objLength);
offset = objLength + 6;
requestBuf[offset++] = propLength;
memmove(requestBuf + offset, propertyName, propLength);
offset = objLength + propLength + 7;
*((int *)(requestBuf + offset)) = IntSwap(memberType);
offset += 2;
requestBuf[offset++] = memLength;
memmove(requestBuf + offset, memberName, memLength);
*((int *)requestBuf) = objLength + propLength + memLength + 8;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int DeleteProperty(objectName, objectType, propertyName)
char *objectName;
char *propertyName;
int objectType;
{
char requestBuf[69], replyBuf[2];
int offset, len, proplen;
requestBuf[2] = 58;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
len = strlen(objectName);
requestBuf[5] = len;
memmove(requestBuf + 6, objectName, len);
offset = len + 6;
proplen = strlen(propertyName);
requestBuf[offset++] = proplen;
memmove(requestBuf + offset, propertyName, proplen);
*((int *)requestBuf) = len + proplen + 5;
*((int *)replyBuf) = 0;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
return(opregs.h.al);
}
int GetBinderyObjectID(objectName, objectType, objectID)
char *objectName;
int objectType;
unsigned long *objectID;
{
char requestBuf[53], replyBuf[56];
int ccode, len;
requestBuf[2] = 53;
*((int *)(requestBuf + 3)) = IntSwap(objectType);
len = strlen(objectName);
requestBuf[5] = len;
memmove(requestBuf + 6, objectName, len);
*((int *)requestBuf) = len + 4;
*((int *)replyBuf) = 54;
spregs.ds = FP_SEG(requestBuf);
spregs.es = FP_SEG(replyBuf);
ipregs.x.si = FP_OFF(requestBuf);
ipregs.x.di = FP_OFF(replyBuf);
ipregs.h.ah = 0xE3;
intdosx(&ipregs,&opregs,&spregs);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -