亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? print.c

?? 網絡打印機及文件共享 C程序源代碼 用于網絡通信
?? C
字號:
 # include <stdio.h>
 # include <dos.h>
 # include <bios.h>

 union  REGS    ipregs;
 union  REGS    opregs;
 struct SREGS   spregs;

struct DoubleWord
{
   unsigned int HiWord;
   unsigned int LoWord;
};
union  LongToWord
{
   long    dw;
   struct  DoubleWord w;
};

int  IntSwap();
long LongSwap();
int GetBinderyObjectID();
int CancelLPTCapture();
int CancelSpecificLPTCapture();
int EndLPTCapture();
int EndSpecificLPTCapture();
int FlushLPTCapture();
int FlushSpecificLPTCapture();
int GetBannerUserName();
int GetDefaultLocalPrinter();
int GetLPTCaptureStatus();
int GetPrinterStatus();
int SetBannerUserName();
int SetCapturePrintQueue();
int SetDefaultLocalPrinter();
int SpecifyCaptureFile();
int StartLPTCapture();
int StartSpecificLPTCapture();

main()
{
char  LPTDevice=0;
char  userName[13];
long  QueueID;
char  driveHandle=3;
char  filePath[255];
int   return_code;
char  ch,userdata[100];
FILE  *handle;
char object_name[48];
int object_type=3;

clrscr();
printf("\n\n\n                      The example for print DOS call\n\n\n");

SetDefaultLocalPrinter(LPTDevice);
LPTDevice=GetDefaultLocalPrinter();
printf("The  default local LPTDevice : LPT%d \n\n",LPTDevice+1);

GetBannerUserName(userName);
printf("The banner username is '%s' now.\n\n",userName);
printf("Input the banner username you want:");
scanf("%s",userName);
SetBannerUserName(userName);

printf("\nYou can print your data to Printer or File, your choice(P/F):");
scanf("\n%c",&ch);
if (ch=='f'||ch=='F')
  {printf("\nInput the filename(8 character):");
   scanf("%s",filePath);
   return_code=SpecifyCaptureFile(driveHandle, filePath);
   if (return_code==0)
     {StartLPTCapture();
      return_code=GetLPTCaptureStatus();
      if (return_code==0xff)
         {printf("\n\nNow you can print your data!\nPlease input:");
          scanf("%s",userdata);
          fprintf(stdprn,userdata);
          printf("\nSuccess,Press any key to quit!");
         }
     }
   else
      printf("\nFailure,Press any key to quit!");
   ch=getch();
   }
else
   {printf("\nInput the name of print queue:");
    scanf("%s",object_name);
    return_code=GetBinderyObjectID(object_name, object_type,&QueueID);
    if (return_code==0)
       {SetCapturePrintQueue(LPTDevice,QueueID);
        StartLPTCapture();
        return_code=GetLPTCaptureStatus();
        if (return_code==0xff)
           {printf("\n\nNow you can print your data!\nPlease input:");
            scanf("%s",userdata);
            fprintf(stdprn,userdata);
            printf("\nYou want to End/Cancel/Flush the capture(E/C/F):");
            scanf("\n%c",&ch);
            if (ch=='e'||ch=='E')
               EndLPTCapture();
            if (ch=='c'||ch=='C')
               CancelLPTCapture();
            if (ch=='f'||ch=='F')
               FlushLPTCapture();
            printf("\nSuccess,Press any key to quit!");
           }
       }
   else
      printf("\nFailure,Press any key to quit!");
   ch=getch();
   }

return_code=GetLPTCaptureStatus();
if (return_code==0xff)
   EndLPTCapture();

}

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 GetBinderyObjectID(objectName, objectType, objectID)
char *objectName;
int   objectType;
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);

   if (opregs.h.al)
      return(opregs.h.al);

   *objectID = LongSwap(*((long *)(replyBuf + 2)));

   return (0);

}


int CancelLPTCapture()
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x02;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int CancelSpecificLPTCapture(LPTDevice)
char    LPTDevice;
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x06;
   ipregs.h.dh = LPTDevice;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int EndLPTCapture()
{

    ipregs.h.ah = 0xDF;
    ipregs.h.dl = 0x01;
    intdosx(&ipregs,&opregs,&spregs);

    return (opregs.h.al);
}

int EndSpecificLPTCapture(LPTDevice)
char    LPTDevice;
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x05;
   ipregs.h.dh = LPTDevice;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);

}

int FlushLPTCapture()
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x03;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int FlushSpecificLPTCapture(LPTDevice)
char    LPTDevice;
{

    ipregs.h.ah = 0xDF;
    ipregs.h.dl = 0x07;
    ipregs.h.dh = LPTDevice;
    intdosx(&ipregs,&opregs,&spregs);

    return (opregs.h.al);
}

int GetBannerUserName(userName)
char *userName;
{

   ipregs.h.ah = 0xB8;
   ipregs.h.al = 0x08;
   spregs.es   = FP_SEG(userName);
   ipregs.x.bx = FP_OFF(userName);
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int GetDefaultLocalPrinter()
{

   ipregs.h.ah = 0xB8;
   ipregs.h.al = 0x04;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.dh);
}

int GetLPTCaptureStatus()
{

   ipregs.h.ah = 0xF0;
   ipregs.h.al = 0x03;
   intdosx(&ipregs,&opregs,&spregs);

   if (opregs.h.al)
      return(opregs.h.ah);
}

int GetPrinterStatus(printerNumber, printerHalted, printerOffLine, formType,
                     targetPrinter)
int   printerNumber;
int   *formType;
int   *targetPrinter;
char  *printerHalted;
char *printerOffLine;
{

   char    requestBuf[4];
   char    replyBuf[6];
   int     ccode;

   requestBuf[2] = 6;
   requestBuf[3] = (char)((char)printerNumber);
   *((int *)requestBuf) = 2;

   *((int *)replyBuf) = 4;

   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 = 0xE0;

   intdosx(&ipregs,&opregs,&spregs);

   if (opregs.h.al)
   {
      if (printerHalted)
          *printerHalted = replyBuf[2];

      if (printerOffLine)
          *printerOffLine = replyBuf[3];

      if (formType)
          *formType = replyBuf[4];

      if (targetPrinter)
           *targetPrinter = replyBuf[5];
   }

   return (opregs.h.al);
}

int SetBannerUserName(userName)
char *userName;
{

   ipregs.h.ah = 0xB8;
   ipregs.h.al = 0x09;
   spregs.es   = FP_SEG(userName);
   ipregs.x.bx = FP_OFF(userName);
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

 int SetCapturePrintQueue(LPTDevice, QueueID)
 char    LPTDevice;
 long    QueueID;
 {
   union LongToWord tmp;

   ipregs.h.ah = 0xB8;
   ipregs.h.al = 0x06;
   ipregs.h.dh = LPTDevice;
   tmp.dw = QueueID;
   ipregs.x.bx = IntSwap(tmp.w.HiWord);
   ipregs.x.cx = IntSwap(tmp.w.LoWord);
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
 }

 int SetDefaultLocalPrinter(LPTDevice)
 char    LPTDevice;
 {

   ipregs.h.ah = 0xB8;
   ipregs.h.al = 0x05;
   ipregs.h.dh = LPTDevice;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
 }

int SpecifyCaptureFile(driveHandle, filePath)
char driveHandle;
char *filePath;
{
   char    len;
   char    requestBuf[261], replyBuf[2];

   len = (char)strlen(filePath);
   *((int *)requestBuf) = 3 + len;
   requestBuf[2] = 9;
   requestBuf[3] = driveHandle;
   requestBuf[4] = len;
   memcpy(requestBuf + 5, filePath, (int)len);
   *((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 = 0xE0;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int StartLPTCapture()
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x00;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

int StartSpecificLPTCapture(LPTDevice)
{

   ipregs.h.ah = 0xDF;
   ipregs.h.dl = 0x04;
   ipregs.h.dh = LPTDevice;
   intdosx(&ipregs,&opregs,&spregs);

   return (opregs.h.al);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞午夜鲁丝一区二区老狼| 久久精品亚洲一区二区三区浴池 | 日韩三区在线观看| 三级久久三级久久| 日韩美女视频一区二区在线观看| 免费高清在线视频一区·| 久久久久青草大香线综合精品| 国产91精品久久久久久久网曝门| 自拍视频在线观看一区二区| 欧美日韩精品电影| 国模少妇一区二区三区| 中文字幕亚洲一区二区av在线| 91福利在线看| 久久99国内精品| 亚洲欧美色综合| 日韩一区二区视频| www.亚洲色图.com| 亚洲最色的网站| 欧美日韩成人高清| 国产成人免费在线观看| 尤物视频一区二区| 精品毛片乱码1区2区3区| 99久久99久久精品免费观看| 亚洲国产日韩一区二区| 在线播放中文一区| 国产伦精品一区二区三区视频青涩| 亚洲欧洲日韩女同| 日韩欧美一区二区不卡| 色综合久久久久| 麻豆精品一区二区三区| 亚洲欧美在线另类| 91精品国产综合久久香蕉麻豆| 国产福利精品一区| 午夜精品久久久久久久久久久| 久久久国产午夜精品| 欧美日韩一区二区三区在线看| 激情五月婷婷综合网| 亚洲一区二区中文在线| 国产免费久久精品| 日韩你懂的在线播放| 欧美在线一二三| 国产成人aaaa| 久久99热国产| 三级久久三级久久| 亚洲三级免费电影| 国产嫩草影院久久久久| 日韩午夜三级在线| 欧美日韩在线三区| 色老综合老女人久久久| www.色精品| 国产在线视频不卡二| 三级影片在线观看欧美日韩一区二区 | 蜜臀a∨国产成人精品| 日韩美女视频19| 2022国产精品视频| 日韩美女主播在线视频一区二区三区| 91在线视频免费观看| 国产成人激情av| 国产在线视频一区二区三区| 全国精品久久少妇| 日本视频中文字幕一区二区三区| 亚洲一区二区在线观看视频| 国产精品久久久久影院老司 | 99国产精品99久久久久久| 美女视频黄频大全不卡视频在线播放| 亚洲乱码国产乱码精品精98午夜| 亚洲国产成人午夜在线一区| 国产无人区一区二区三区| 日韩视频免费观看高清完整版在线观看 | 日韩一卡二卡三卡四卡| 欧美乱妇20p| 337p亚洲精品色噜噜| 3d动漫精品啪啪一区二区竹菊| 欧美日韩国产高清一区二区三区 | 国产精品福利av| 中文字幕av不卡| 国产精品美女久久久久久久久久久| 国产日韩精品视频一区| 国产精品国产三级国产普通话蜜臀 | 欧美国产一区视频在线观看| 国产亚洲污的网站| 欧美激情一区二区三区在线| 久久久精品黄色| 亚洲国产精品高清| 中文字幕一区av| 亚洲黄色免费网站| 五月婷婷综合在线| 久热成人在线视频| 国产最新精品精品你懂的| 国产乱人伦精品一区二区在线观看| 国产一区欧美日韩| 成人av电影在线| 91传媒视频在线播放| 911国产精品| 亚洲精品一线二线三线无人区| 国产嫩草影院久久久久| 亚洲精品免费视频| 秋霞电影一区二区| 国产一区二区三区日韩| www.日韩精品| 欧美日韩另类国产亚洲欧美一级| 国产日韩精品一区二区三区| 亚洲免费在线播放| 免费观看91视频大全| 成人a免费在线看| 欧美自拍丝袜亚洲| 日韩三级视频在线看| 国产精品成人免费 | 日本中文字幕一区二区视频| 六月丁香婷婷久久| www.日韩在线| 日韩视频中午一区| 成人欧美一区二区三区视频网页| 亚洲精品国产精品乱码不99| 日本午夜精品视频在线观看| 国产高清在线精品| 欧美午夜精品久久久| 欧美精品一区二区三区蜜臀| 亚洲女同ⅹxx女同tv| 久久国产人妖系列| 欧美在线免费播放| 欧美国产精品v| 日日夜夜一区二区| 97精品国产露脸对白| 精品少妇一区二区| 亚洲黄色av一区| 国产sm精品调教视频网站| 欧美日韩国产天堂| 亚洲人成人一区二区在线观看| 国产中文字幕一区| 宅男噜噜噜66一区二区66| 国产精品久久久久久久久图文区| 麻豆精品国产传媒mv男同| 欧美日韩在线播放一区| 欧美激情一区二区三区不卡| 免费成人你懂的| 欧美日韩精品欧美日韩精品一| 国产精品国产精品国产专区不片| 美女久久久精品| 欧洲中文字幕精品| 亚洲三级在线观看| 成人免费观看男女羞羞视频| 亚洲精品一区二区三区影院| 日本特黄久久久高潮| 欧美四级电影网| 亚洲柠檬福利资源导航| 丰满岳乱妇一区二区三区| 26uuu国产一区二区三区| 日韩激情中文字幕| 欧美日韩精品是欧美日韩精品| 一区二区三区中文字幕| 97久久久精品综合88久久| 中文字幕精品三区| 国产成人综合视频| 精品国精品国产尤物美女| 美国十次综合导航| 欧美日韩综合不卡| 亚洲香蕉伊在人在线观| 欧美综合一区二区三区| 亚洲精品久久7777| 色婷婷综合五月| 一区二区成人在线| 欧美日韩色综合| 天天综合天天综合色| 制服丝袜av成人在线看| 美腿丝袜亚洲三区| 日韩精品在线一区| 国产一区二区三区久久久| 久久久精品综合| 岛国精品在线观看| 亚洲人成人一区二区在线观看| 99国产精品久久久久久久久久 | 亚洲色图制服诱惑| 91亚洲精华国产精华精华液| 日韩久久一区二区| 欧洲一区二区三区在线| 亚洲国产美女搞黄色| 538在线一区二区精品国产| 免费看欧美女人艹b| 欧美精品一区二| 成人综合在线网站| 亚洲精品亚洲人成人网| 欧美日韩免费视频| 久久精品999| 国产欧美日本一区视频| thepron国产精品| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩国产欧美日美国产精品| 美女网站一区二区| 亚洲国产精品99久久久久久久久| 91在线码无精品| 日韩精彩视频在线观看| 久久精品人人做人人综合 | 国产精品福利一区二区三区| 色噜噜狠狠一区二区三区果冻| 丝袜美腿亚洲一区| 国产欧美日韩不卡免费| 欧美日韩一区三区四区| 国产精品1区2区3区在线观看| 亚洲精选免费视频|