⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bindery.c

📁 网络打印机及文件共享 C程序源代码 用于网络通信
💻 C
📖 第 1 页 / 共 3 页
字号:
			  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 + -