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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? setup.cpp

?? 這個是一個開源項目, 有能力的人可以一起來寫
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
      ShowError(MB_OK|MB_ICONWARNING, err, "portParameters.Load(%s)", phPortName);
    }

    char buf[100];

    portParameters.FillParametersStr(buf, sizeof(buf)/sizeof(buf[0]));

    Trace("       %s %s\n", phPortName, buf);
  }

  if (!InstallBusDevice(infFile, i))
    goto err;

  return  0;

err:

  Trace("\nInstall not completed!\n");

  return  1;
}
///////////////////////////////////////////////////////////////
int Uninstall(InfFile &infFile)
{
  BOOL rebootRequired = FALSE;
  DevProperties devProperties;

  devProperties = DevProperties();
  devProperties.pDevId = C0C_PORT_DEVICE_ID;

  if (!DisableDevices(infFile, &devProperties, &rebootRequired))
    return 1;

  devProperties = DevProperties();
  devProperties.pDevId = C0C_BUS_DEVICE_ID;

  if (!RemoveDevices(infFile, &devProperties, &rebootRequired))
    return 1;

  if (!RemoveDevices(infFile, NULL, NULL))
    return 1;

  if (rebootRequired) {
    SetupPromptReboot(NULL, NULL, FALSE);
    return 0;
  }

  int res;
  BOOL notDeleted;
  LONG err;

  do {
    notDeleted = TRUE;
    res = IDCONTINUE;

    SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

    if (hSCM) {
      do {
        res = IDCONTINUE;

        SC_HANDLE hSrv = OpenService(hSCM, C0C_SERVICE, DELETE|SERVICE_QUERY_STATUS);

        if (hSrv) {
          SERVICE_STATUS srvStatus;

          if (QueryServiceStatus(hSrv, &srvStatus)) {
            if (srvStatus.dwCurrentState == SERVICE_STOPPED) {
              if (ShowMsg(MB_YESNO,
                  "The deleting %s service will remove your manual settings.\n"
                  "Would you like to delete service?\n",
                  C0C_SERVICE) == IDYES)
              {
                if (DeleteService(hSrv)) {
                  Trace("Deleted Service %s\n", C0C_SERVICE);
                  notDeleted = FALSE;
                } else {
                  res = ShowLastError(MB_CANCELTRYCONTINUE, "DeleteService(%s)", C0C_SERVICE);
                }
              }
            } else {
              res = ShowMsg(MB_CANCELTRYCONTINUE,
                            "Service %s is not stopped (state %ld).",
                            C0C_SERVICE, (long)srvStatus.dwCurrentState);
            }
          } else {
            res = ShowLastError(MB_CANCELTRYCONTINUE, "QueryServiceStatus(%s)", C0C_SERVICE);
          }

          if (!CloseServiceHandle(hSrv))
            ShowLastError(MB_OK|MB_ICONWARNING, "CloseServiceHandle(hSrv)");
        } else {
          if (GetLastError() == ERROR_SERVICE_DOES_NOT_EXIST) {
            Trace("Service %s not installed\n", C0C_SERVICE);
            notDeleted = FALSE;
          } else {
            res = ShowLastError(MB_CANCELTRYCONTINUE, "OpenService(%s)", C0C_SERVICE);
          }
        }
      } while (res == IDTRYAGAIN);

      if (!CloseServiceHandle(hSCM))
        ShowLastError(MB_OK|MB_ICONWARNING, "CloseServiceHandle(hSCM)");
    } else {
      res = ShowLastError(MB_CANCELTRYCONTINUE, "OpenSCManager()");
    }
  } while (res == IDTRYAGAIN);

  if (notDeleted)
    Trace("WARNING: Service %s not deleted\n", C0C_SERVICE);

  if (res != IDCONTINUE)
    return 1;

  do {
    notDeleted = TRUE;
    res = IDCONTINUE;

    err = RegDeleteKey(HKEY_LOCAL_MACHINE, C0C_REGKEY_EVENTLOG);

    if (err == ERROR_SUCCESS) {
      Trace("Deleted EventLog %s\n", C0C_SERVICE);
      notDeleted = FALSE;
    }
    else
    if (err == ERROR_FILE_NOT_FOUND) {
      Trace("EventLog %s not installed\n", C0C_SERVICE);
      notDeleted = FALSE;
    }
    else {
      res = ShowError(MB_CANCELTRYCONTINUE, err, "RegDeleteKey(%s)", C0C_REGKEY_EVENTLOG);
    }
  } while (res == IDTRYAGAIN);

  if (notDeleted)
    Trace("WARNING: Key %s not deleted\n", C0C_REGKEY_EVENTLOG);

  if (res != IDCONTINUE)
    return 1;

  do {
    notDeleted = TRUE;
    res = IDCONTINUE;

    HKEY hKey = SetupDiOpenClassRegKey(NULL, DELETE);

    if (hKey != INVALID_HANDLE_VALUE) {
      do {
        res = IDCONTINUE;

        err = RegDeleteKey(hKey, infFile.ClassGUID());

        if (err != ERROR_SUCCESS) {
          HKEY hClassGuidKey;
          err = RegOpenKeyEx(hKey, infFile.ClassGUID(), 0, KEY_READ, &hClassGuidKey);

          if (err == ERROR_SUCCESS) {
            for (;;) {
              char subKey[MAX_PATH+1];
              DWORD subKeySize = sizeof(subKey)/sizeof(subKey[0]);

              err = RegEnumKeyEx(hClassGuidKey, 0, subKey, &subKeySize, NULL, NULL, NULL, NULL);

              if (err != ERROR_SUCCESS)
                break;

              err = RegDeleteKey(hClassGuidKey, subKey);

              if (err == ERROR_SUCCESS)
                Trace("Deleted Class subkey %s\\%s\n", infFile.ClassGUID(), subKey);
              else
              if (err != ERROR_FILE_NOT_FOUND) {
                ShowError(MB_OK|MB_ICONWARNING, err, "RegDeleteKey(%s\\%s)", infFile.ClassGUID(), subKey);
                break;
              }
            }

            err = RegCloseKey(hClassGuidKey);

            if (err != ERROR_SUCCESS)
              ShowError(MB_OK|MB_ICONWARNING, err, "RegCloseKey()");
          }

          err = RegDeleteKey(hKey, infFile.ClassGUID());
        }

        if (err == ERROR_SUCCESS) {
          Trace("Deleted Class %s\n", infFile.ClassGUID());
          notDeleted = FALSE;
        }
        else
        if (err == ERROR_FILE_NOT_FOUND) {
          Trace("Class %s not installed\n", infFile.ClassGUID());
          notDeleted = FALSE;
        }
        else {
          res = ShowError(MB_CANCELTRYCONTINUE, err, "RegDeleteKey(%s)", infFile.ClassGUID());
        }
      } while (res == IDTRYAGAIN);

      err = RegCloseKey(hKey);

      if (err != ERROR_SUCCESS)
        ShowError(MB_OK|MB_ICONWARNING, err, "RegCloseKey()");
    } else {
      res = ShowLastError(MB_CANCELTRYCONTINUE, "SetupDiOpenClassRegKey(NULL)");
    }
  } while (res == IDTRYAGAIN);

  if (notDeleted)
    Trace("WARNING: Class %s not deleted\n", infFile.ClassGUID());

  if (res != IDCONTINUE)
    return 1;

  if (!infFile.UninstallOEMInf())
    return 1;

  if (!infFile.UninstallFiles(C0C_COPY_DRIVERS_SECTION))
    return 1;

  if (!InfFile::UninstallAllInfFiles(C0C_CLASS_GUID, NULL, NULL))
    return 1;

  return 0;
}
///////////////////////////////////////////////////////////////
int Help(const char *pCmdPref)
{
  SetTitle(C0C_SETUP_TITLE " (HELP)");

  ConsoleWrite(
    C0C_SETUP_TITLE "\n"
    "\n");
  ConsoleWrite(
    "Usage:\n"
    "  %s [options] <command>\n"
    , pCmdPref);
  ConsoleWrite(
    "\n"
    "Options:\n"
    "  --output <file>              - file for output, default is console\n"
    );
  ConsoleWrite(
    "\n"
    "Commands:\n"
    "  install <n> <prmsA> <prmsB>  - install a pair of linked ports with\n"
    "   or                            identifiers " C0C_PREF_PORT_NAME_A "<n> and "
                                      C0C_PREF_PORT_NAME_B "<n>\n"
    "  install <prmsA> <prmsB>        (by default <n> is the first not used number),\n"
    "                                 set their parameters to <prmsA> and <prmsB>\n"
    "  remove <n>                   - remove a pair of linked ports with\n"
    "                                 identifiers " C0C_PREF_PORT_NAME_A "<n> and "
                                      C0C_PREF_PORT_NAME_B "<n>\n"
    "  change <portid> <prms>       - set parameters <prms> for port with\n"
    "                                 identifier <portid>\n"
    "  list                         - for each port show its identifier and\n"
    "                                 parameters\n"
    "  preinstall                   - preinstall driver\n"
    "  update                       - update driver\n"
    "  uninstall                    - uninstall all ports and the driver\n"
    "  quit                         - quit\n"
    "  help                         - print this help\n"
    );
  ConsoleWrite(
    "\n"
    "%s",
    PortParameters::GetHelp());
  ConsoleWrite(
    "\n"
    "Examples:\n"
    );
  ConsoleWrite(
    "  %sinstall - -\n"
    , pCmdPref);
  ConsoleWrite(
    "  %sinstall 5 * *\n"
    , pCmdPref);
  ConsoleWrite(
    "  %sremove 0\n"
    , pCmdPref);
  ConsoleWrite(
    "  %sinstall PortName=COM2 PortName=COM4\n"
    , pCmdPref);
  ConsoleWrite(
    "  %sinstall PortName=COM5,EmuBR=yes,EmuOverrun=yes -\n"
    , pCmdPref);
  ConsoleWrite(
    "  %schange " C0C_PREF_PORT_NAME_A "0 EmuBR=yes,EmuOverrun=yes\n"
    , pCmdPref);
  ConsoleWrite(
    "  %slist\n"
    , pCmdPref);
  ConsoleWrite(
    "  %suninstall\n"
    , pCmdPref);
  ConsoleWrite(
    "\n");

  return 1;
}
///////////////////////////////////////////////////////////////
int Main(int argc, const char* argv[])
{
  SetOutputFile(NULL);

  while (argc > 1) {
    if (*argv[1] != '-')
      break;

    if (!strcmp(argv[1], "--output") && argc > 2) {
      SetOutputFile(argv[2]);
      argv[2] = argv[0];
      argv += 2;
      argc -= 2;
    } else {
      ConsoleWrite("Invalid option %s\n", argv[1]);
      return 1;
    }
  }

  if (argc == 1) {
    return 0;
  }
  else
  if (argc == 2 && !lstrcmpi(argv[1], "help")) {
    Help(argv[0]);
    return 0;
  }
  else
  if (argc == 2 && !lstrcmpi(argv[1], "quit")) {
    return 0;
  }

  InfFile infFile(C0C_INF_NAME, C0C_INF_NAME);

  if (!infFile.Compare(C0C_CLASS_GUID, C0C_CLASS, C0C_PROVIDER))
    return 1;

  if (argc == 2 && !lstrcmpi(argv[1], "list")) {
    SetTitle(C0C_SETUP_TITLE " (LIST)");
    return Change(infFile, NULL, NULL);
  }
  else
  if (argc == 4 && !lstrcmpi(argv[1], "change")) {
    SetTitle(C0C_SETUP_TITLE " (CHANGE)");
    return Change(infFile, argv[2], argv[3]);
  }
  else
  if (argc == 4 && !lstrcmpi(argv[1], "install")) {
    SetTitle(C0C_SETUP_TITLE " (INSTALL)");
    return Install(infFile, argv[2], argv[3], -1);
  }
  else
  if (argc == 5 && !lstrcmpi(argv[1], "install")) {
    SetTitle(C0C_SETUP_TITLE " (INSTALL)");

    int num;

    if (StrToInt(argv[2], &num) && num >= 0)
      return Install(infFile, argv[3], argv[4], num);
  }
  else
  if (argc == 3 && !lstrcmpi(argv[1], "remove")) {
    SetTitle(C0C_SETUP_TITLE " (REMOVE)");

    int num;

    if (StrToInt(argv[2], &num) && num >= 0)
      return Remove(infFile, num);
  }
  else
  if (argc == 2 && !lstrcmpi(argv[1], "preinstall")) {
    SetTitle(C0C_SETUP_TITLE " (PREINSTALL)");
    return Preinstall(infFile);
  }
  else
  if (argc == 2 && !lstrcmpi(argv[1], "update")) {
    SetTitle(C0C_SETUP_TITLE " (UPDATE)");
    return Update(infFile);
  }
  else
  if (argc == 2 && !lstrcmpi(argv[1], "uninstall")) {
    SetTitle(C0C_SETUP_TITLE " (UNINSTALL)");
    return Uninstall(infFile);
  }

  ConsoleWrite("Invalid command\n");

  return 1;
}
///////////////////////////////////////////////////////////////
static int ParseCmd(char *pCmd, const char* argv[], int sizeArgv)
{
  int argc;

  argc = 0;

  for (char *pArg = strtok(pCmd, " \t\r\n") ; pArg ; pArg = strtok(NULL, " \t\r\n")) {
    if ((argc + 2) > sizeArgv)
      break;

    if (*pArg == '"')
      pArg++;

    char *pEnd = pArg + lstrlen(pArg);

    if (pEnd-- != pArg && *pEnd == '"')
      *pEnd = 0;

    argv[argc++] = pArg;
  }

  argv[argc] = NULL;

  return argc;
}
///////////////////////////////////////////////////////////////
int CALLBACK RunDllA(HWND /*hWnd*/, HINSTANCE /*hInst*/, LPSTR pCmdLine, int /*nCmdShow*/)
{
  SetTitle(C0C_SETUP_TITLE);

  char cmd[200];

  lstrcpyn(cmd, pCmdLine, sizeof(cmd)/sizeof(cmd[0]));

  int argc;
  const char* argv[10];

  argc = ParseCmd(cmd, argv + 1, sizeof(argv)/sizeof(argv[0]) - 1) + 1;

  if (argc == 1) {
    ConsoleWrite("Enter 'help' to get info about usage of " C0C_SETUP_TITLE ".\n\n");

    argv[0] = "";

    for (;;) {
      argv[1] = NULL;

      ConsoleWriteRead(cmd, sizeof(cmd)/sizeof(cmd[0]), "command> ");

      argc = ParseCmd(cmd, argv + 1, sizeof(argv)/sizeof(argv[0]) - 1) + 1;

      if (argc == 2 && !lstrcmpi(argv[1], "quit"))
        return 0;

      Main(argc, argv);
    }
  }

  argv[0] = "rundll32 setup,RunDll ";

  int res = Main(argc, argv);

  if (!GetOutputFile())
    ConsoleWriteRead(cmd, sizeof(cmd)/sizeof(cmd[0]), "\nPress <RETURN> to continue\n");

  return res;
}
///////////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人精品福利| www.性欧美| 91精品福利在线一区二区三区| 亚洲一二三区视频在线观看| 欧美三级电影在线观看| 日韩成人午夜精品| 精品国产免费一区二区三区四区 | 不卡电影一区二区三区| 欧美国产成人精品| 色8久久人人97超碰香蕉987| 亚洲福利视频三区| 精品奇米国产一区二区三区| 国产成人免费视频网站高清观看视频 | 欧美一区二区三区婷婷月色| 国产一区二区三区免费观看| 国产精品久久久久久一区二区三区| 色哟哟精品一区| 日韩成人一区二区三区在线观看| 精品国产凹凸成av人导航| 国产麻豆91精品| 伊人婷婷欧美激情| 日韩精品一区二区三区在线播放 | 97成人超碰视| 日本伊人色综合网| 日本一区二区免费在线| 欧美视频在线一区二区三区 | 日韩av不卡一区二区| 久久中文字幕电影| 91精品国产综合久久久久久久 | 久久精品国内一区二区三区| 中文成人综合网| 欧美日韩一区在线| 国产成人三级在线观看| 亚洲小说欧美激情另类| 久久久亚洲综合| 欧美三级蜜桃2在线观看| 国产精品一区二区果冻传媒| 亚洲国产精品久久艾草纯爱| www久久久久| 欧美欧美欧美欧美首页| 大尺度一区二区| 麻豆久久久久久久| 一区二区三区在线观看国产| 久久综合国产精品| 91麻豆精品国产| 91免费观看在线| 国产精品一二三在| 日本91福利区| 午夜欧美一区二区三区在线播放| 国产日韩欧美制服另类| 欧美一区二区三区日韩| 色综合中文字幕国产 | 日本韩国欧美在线| 懂色av一区二区夜夜嗨| 久久精品国产**网站演员| 亚洲成在人线在线播放| 自拍av一区二区三区| 亚洲精品一区二区三区香蕉| 7777精品伊人久久久大香线蕉完整版| av在线播放不卡| 成人小视频免费观看| 国产老妇另类xxxxx| 免费成人性网站| 人人精品人人爱| 三级一区在线视频先锋| 一区二区三区美女| 亚洲精品菠萝久久久久久久| 成人免费小视频| 国产精品国产三级国产普通话三级| 精品少妇一区二区三区| 精品国产亚洲在线| 久久亚洲精品国产精品紫薇| 日韩亚洲欧美中文三级| 日韩亚洲欧美成人一区| 欧美一级黄色片| 91精品国产综合久久福利| 91精品国产一区二区三区香蕉| 欧美伊人精品成人久久综合97 | 天天影视涩香欲综合网| 午夜精品在线看| 蜜桃视频在线观看一区| 洋洋成人永久网站入口| 亚洲人成小说网站色在线| 中文字幕在线观看一区| 国产精品嫩草影院av蜜臀| 国产精品国产三级国产aⅴ无密码| 国产日韩精品一区二区三区| 国产欧美在线观看一区| 亚洲欧洲精品一区二区三区| 亚洲免费高清视频在线| 午夜久久久久久| 精品一区二区三区在线观看国产 | 欧美精品一二三区| 日韩视频永久免费| 精品国产免费久久| 国产欧美日韩中文久久| 亚洲视频一区二区在线| 五月天精品一区二区三区| 男女性色大片免费观看一区二区| 美女被吸乳得到大胸91| 国产成人免费在线视频| 91久久奴性调教| 日韩三级视频中文字幕| 中文字幕乱码久久午夜不卡| 一区二区久久久| 男女男精品网站| 9色porny自拍视频一区二区| 精品视频资源站| 国产欧美日韩另类一区| 亚洲一二三区在线观看| 国模少妇一区二区三区| 日本精品一区二区三区高清 | 精品一二三四在线| 成人av网站免费观看| 欧美日韩在线播放三区四区| 精品乱人伦一区二区三区| 国产精品电影院| 日韩中文字幕不卡| 成人app在线| 欧美一区二区在线免费观看| 国产精品久久久久久久久图文区| 午夜精品久久久久久久久久 | 色综合天天综合狠狠| 欧美电视剧免费观看| 亚洲丝袜精品丝袜在线| 精品亚洲国内自在自线福利| 色av成人天堂桃色av| 久久精品一区二区三区av| 一区二区久久久| 国产69精品久久久久毛片| 欧美一区二区三区影视| 亚洲一区二区三区不卡国产欧美| 国产一区二区成人久久免费影院 | 日韩一区二区精品| 亚洲色图.com| 国产成人超碰人人澡人人澡| 欧美军同video69gay| 自拍偷拍欧美精品| 国产伦精品一区二区三区视频青涩 | 91亚洲精品久久久蜜桃| 精品精品国产高清a毛片牛牛| 亚洲一级在线观看| 99精品一区二区三区| 久久精品一区二区三区四区| 美女国产一区二区三区| 777奇米四色成人影色区| 亚洲伦在线观看| 成人中文字幕在线| 久久久噜噜噜久噜久久综合| 蜜臀久久久99精品久久久久久| 在线欧美一区二区| 一区二区三区在线视频免费| kk眼镜猥琐国模调教系列一区二区| 精品99一区二区三区| 九色porny丨国产精品| 4438成人网| 日韩成人免费在线| 制服丝袜av成人在线看| 日本成人在线网站| 欧美男男青年gay1069videost | 欧美日韩中文国产| 亚洲国产日韩a在线播放| 91成人免费网站| 亚洲一区精品在线| 欧美日韩亚洲高清一区二区| 亚洲一卡二卡三卡四卡 | av综合在线播放| 一区二区中文视频| 色婷婷激情一区二区三区| 成人免费小视频| 在线免费观看日韩欧美| 亚洲丰满少妇videoshd| 欧美最新大片在线看| 午夜精品久久久久久久久| 欧美一区二区三区小说| 精品一区二区三区在线观看| 国产午夜精品久久久久久免费视| 国产精品1区二区.| 国产精品久久久久aaaa樱花| 色婷婷综合中文久久一本| 亚洲午夜激情网页| 欧美一区二区三区公司| 久久99国产乱子伦精品免费| 久久久一区二区三区捆绑**| 成人黄色软件下载| 一区二区三区免费观看| 欧美一级理论片| 国产真实乱偷精品视频免| 国产精品婷婷午夜在线观看| 91天堂素人约啪| 香蕉影视欧美成人| 337p日本欧洲亚洲大胆色噜噜| 成人一级黄色片| 亚洲一区视频在线| 精品国产乱码久久久久久闺蜜 | 欧美性生活久久| 美日韩一级片在线观看| 国产精品情趣视频| 欧美乱熟臀69xxxxxx| 国产成人免费在线观看|