fsal_posixdb_status_t fsal_posixdb_deleteParent(fsal_posixdb_conn * p_conn, /* IN */ char *handleid_str, /* IN */ char *handlets_str, /* IN */ char *handleidparent_str, /* IN */ char *handletsparent_str, /* IN */ char *filename, /* IN */ int nlink) /* IN */ { PGresult *p_res; char nlink_str[MAX_NLINKSTR_SIZE]; const char *paramValues[3]; /* Sanity check */ if(!p_conn || !filename || nlink < 1) { ReturnCodeDB(ERR_FSAL_POSIXDB_FAULT, 0); } /* delete the Parent entry */ paramValues[0] = handleidparent_str; paramValues[1] = handletsparent_str; paramValues[2] = filename; /* invalidate name cache */ fsal_posixdb_InvalidateCache(); p_res = PQexecPrepared(p_conn, "deleteParent", 3, paramValues, NULL, NULL, 0); CheckCommand(p_res); /* delete the handle or update it */ if(nlink == 1) { /* delete the handle */ /* If there are other entries in the Parent table with this Handle, they will be deleted (thanks to foreign keys) */ paramValues[0] = handleid_str; paramValues[1] = handlets_str; /* invalidate cache */ fsal_posixdb_InvalidateCache(); p_res = PQexecPrepared(p_conn, "deleteHandle", 2, paramValues, NULL, NULL, 0); CheckCommand(p_res); } else { /* update the Handle entry ( Handle.nlink <- (nlink - 1) ) */ paramValues[0] = handleid_str; paramValues[1] = handlets_str; snprintf(nlink_str, MAX_NLINKSTR_SIZE, "%i", nlink - 1); paramValues[2] = nlink_str; /* invalidate cache */ fsal_posixdb_InvalidateCache(); p_res = PQexecPrepared(p_conn, "updateHandleNlink", 3, paramValues, NULL, NULL, 0); CheckCommand(p_res); } ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0); }
fsal_posixdb_status_t fsal_posixdb_flush(fsal_posixdb_conn * p_conn) { PGresult *p_res; p_res = PQexec(p_conn, "DELETE FROM Parent"); CheckCommand(p_res); PQclear(p_res); p_res = PQexec(p_conn, "DELETE FROM Handle"); CheckCommand(p_res); PQclear(p_res); ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0); }
//bool cChat::GuildPost(LPOBJ gObj, char *Msg) //{ // int aIndex = User.GetPlayerIndex(gObj->Name); // // if(gObj->GuildStatus == 128 || gObj ->GuildStatus == 64 || gObj ->GuildStatus == 32) // GDGuildNoticeSave(gObj->GuildName, Msg); // else // TNotice.SendNotice(aIndex,1,"You aren't guild master or assistant"); // return true; //} // //bool cChat::Core(LPOBJ gObj, char *Msg) //{ // MessageLog(1, gObj,"IA Julia 1.1.%d.%d, Compiled %s %s",dBuild, dCommit, __DATE__, __TIME__); // return true; //} // bool cChat::SetZenCommand(LPOBJ gObj, char* Msg, int Index) { if(CheckCommand(gObj, Configs.Commands.IsSetZen, GmSystem.cSetZen, 0, 0, 1, Index, "SetZen", "[Name] /setzen <Zen>", Msg)) return true; DWORD Zen = 0; sscanf(Msg, "%d", &Zen); if(Zen <= 0 || Zen > 2000000000) { TNotice.MessageLog(1, gObj, "[SetZen] Zen can't be less than 1 and more than 2000000000!"); return true; } OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); tObj->Money = Zen; GCMoneySend(tObj->m_Index, Zen); if (gObj == tObj) { TNotice.MessageLog(1,tObj, "[SetZen] Your zen was edited!"); } else { TNotice.MessageLog(1,gObj, "[SetZen] You successfully changed %s zen.", tObj->Name); TNotice.MessageLog(1,tObj, "[SetZen] Your zen was edited by %s!", gObj->Name); } return true; }
bool cChat::PostCommand(LPOBJ gObj, char *Msg) { int aIndex = User.GetPlayerIndex(gObj->Name); if(CheckCommand(gObj, Configs.Commands.IsPost, GmSystem.NONE, Configs.Commands.PostPriceZen, Configs.Commands.PostLvl, 1, 0, "Post", "/post <msg>", Msg)) return true; if(AddTab[gObj->m_Index].POST_Delay > 0) { TNotice.SendNotice(aIndex,1,"[ANTI-FLOOD] Wait %d sec until you can post!", AddTab[gObj->m_Index].POST_Delay); return true; } TakeCommand(gObj, Configs.Commands.PostPriceZen, "Post"); switch(Configs.Commands.PostColor) { case 0: case 1: TNotice.MessageAll(2, 1, gObj, "[POST] %s", Msg); break; case 2: TNotice.MessageAll(2, 0, gObj, "@[POST] %s", Msg); break; case 3: TNotice.MessageAll(2, 0, gObj, "~[POST] %s", Msg); break; } LogAddFuncColor(3,"[POST] %s: %s", gObj->Name,Msg); if(!GmSystem.IsAdmin(gObj->Name)) AddTab[gObj->m_Index].POST_Delay = Configs.Commands.PostDelay; return true; }
bool cChat::SetPKCommand(LPOBJ gObj, char *Msg, int Index) { if(CheckCommand(gObj, Configs.Commands.IsSetPK, GmSystem.cSetPK, 0, 0, 0, Index, "SetPK", "[Name] /setpk <pklvl>", Msg)) return true; int SetLevel; sscanf(Msg,"%d", &SetLevel); if(SetLevel < 0 || SetLevel > 100) { TNotice.MessageLog(1, gObj, "[SetPK] PK lvl can't be less than 0 and more than 100!"); return true; } OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); tObj->m_PK_Level = SetLevel; if(SetLevel >= 3) tObj->m_PK_Count = SetLevel - 3; GCPkLevelSend(tObj->m_Index,SetLevel); if (gObj == tObj) TNotice.MessageLog(1,tObj, "[SetPK] Your pk was changed to %d.", SetLevel); else { TNotice.MessageLog(1,gObj, "[SetPK] You successfully changed %s pk to %d.", tObj->Name, SetLevel); TNotice.MessageLog(1,tObj, "[SetPK] Your pk was changed to %d by %s.", SetLevel, gObj->Name); } return true; }
/***************************************************************************** Function : do_healthcheck Description: do update heatch check Input : handle -- xenbus file handle Output : None Return : XEN_SUCC or XEN_ERROR *****************************************************************************/ int do_healthcheck(void * handle) { int iSpaceRet = 0; //disksize int iKernelRet = 0; //UpKernel flag int iCommandRet = 0; //command flag char resStr[MAX_PATH] = {0}; if (NULL == handle) { return XEN_FAIL; } /*检查磁盘空间是否剩余*/ iSpaceRet = CheckDiskspace(); /*检查内核是否升级*/ iKernelRet = CheckUpKernel(); /*检查系统命令是否存在*/ iCommandRet = CheckCommand(); (void)snprintf_s(resStr, MAX_PATH, MAX_PATH, "%d:%d:%d", iSpaceRet, iKernelRet, iCommandRet); if(xb_write_first_flag == 0) { /*如果返回成功,写入磁盘利用率信息*/ write_to_xenstore(handle, HEALTH_CHECK_RESULT_PATH, resStr); } else { write_weak_to_xenstore(handle, HEALTH_CHECK_RESULT_PATH, resStr); } return XEN_SUCC; }
/* ===================================================================*/ LDD_TError ADCSendCommand(byte* cmd, uint8 len) { LDD_TError err; /* Check the command. */ err = CheckCommand(*cmd, len); if(err != ERR_OK) { PrintErrorMessage(err); return err; } /* Prepare the buffer of command transmitted to ADC. */ err = SPI1Send(cmd, len); if(err != ERR_OK) { PrintErrorMessage(err); /* If error occurred, print the error message, */ return err; /* then return error type. */ } /* Enable the SPI transmission interrupt to transmit. */ SPI1EnableTxInterrupt(); return err; }
int main(int argc, const char **argv) { int i_ret=0; if(!CheckCommand(KILLALLCMD)) { /* errIndex = 7; //shell will be failed*/ ZCommandResponseError(CLEARDBANDREBOOT,1); fprintf(stderr, "Killall command %s does not exist \n", KILLALLCMD); /* goto ExitPoint;*/ return 0; } i_ret=ClearDb_Reboot(); if(i_ret != 0) goto ExitPoint; else /* Send_Respond_Msg(errIndex);*/ ZCommandResponseError(ZCOMMAND,0); return 0; ExitPoint: /* errIndex = 7; //shell will be failed*/ ZCommandResponseError(CLEARDBANDREBOOT,1); fprintf(stderr, "Call reboot failed.\n"); return 0; }
void HonFxerApp::Command_ViewHelp(const MyGUI::UString& _commandName, bool& _result) { if (!CheckCommand()) return; _result = true; }
int main(int argc, const char **argv) { int i_ret=0; if(!CheckCommand(KILLALLCMD)) { i_ret=ZERROR; fprintf(stderr, "Killall command %s does not exist \n", KILLALLCMD); goto ExitPoint; } i_ret=RestoreFactoryDef(); ExitPoint: if(i_ret != 0){ /* Send_Respond_Msg(-7);*/ ZCommandResponseError(RESTOREFACTORYDEFAULT,1); return 0; } ZCommandResponseError(ZCOMMAND,0); /* Send_Respond_Msg(0);*/ return 0; }
void HonFxerApp::Command_ResLocation(const MyGUI::UString& _commandName, bool& _result) { if (!CheckCommand()) return; mSetResLocWindow->doModal(); _result = true; }
void __fastcall ChatHandleTalk(char *user, char *text, int index) { char timestamp[16]; if (!(gstate & GFS_FLOODED)) { GetTimeStamp(timestamp); printf("%s <%s> %s\n", timestamp, user, text); CheckPhrases(user, text); CheckCommand(user, text, 1, index); } }
//bool cChat::AddMobCommand(LPOBJ gObj, char *Msg) //{ //#ifdef _GS // if(CheckCommand(gObj, 1, GmSystem.cSetZen, 0, 0, 0, 0, "AddMob", "/mobadd <mobid> <count> <speed> <distance> <map> <x> <y>", Msg)) // return true; // // int Mob; // int Map = gObj->MapNumber; // int Speed = 10; // int X1 = (int)gObj->X, X2 = (int)gObj->X; // int Y1 = (int)gObj->Y, Y2 = (int)gObj->Y; // int Dir = -1; // int Count = 1; // int Distance = 0; // // sscanf(Msg, "%d %d %d %d %d %d %d", &Mob, &Count, &Speed, &Distance, &Map, &X1, &Y1); // // FILE* AddMobFile; // // if((AddMobFile = fopen(NNMobAdd,"a+")) == NULL) // { // MessageBox(NULL, "Cant Find MonsterSpawn.ini", "Error", 0); // } // else // { // //ID, Count, Speed, Distance, Map, X, Y // //Mob,Map,Speed,x1,y1,x2,y2,dir,count // //17 9 30 119 80 150 115 -1 35 // Cyclops // if(Count == 1) // Dir = gObj->Dir; // if(Distance > 0) // { // X1 -= Distance; // Y1 -= Distance; // X2 += Distance; // Y2 += Distance; // } // // fprintf(AddMobFile, "\n%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d", Mob, Map, Speed, X1, Y1, X2, Y2, Dir, Count); // fclose(AddMobFile); // } // for(int i = 0; i < Count; i++) // { // Monster.MonsterAddAndSpawn(Mob, Map, Speed, X1, Y1, X2, Y2, Dir); // } // TNotice.MessageLog(1, gObj, "[AddMob] %d Mob Successfully spawned (Map: %d, X: %d, Y: %d, MobID: %d)", Count,Map,X1,Y1, Mob); //#endif // return true; //} void cChat::DropCommand(LPOBJ gObj, char *Msg, int aIndex) { OBJECTSTRUCT *lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex); if (!OBJMAX_RANGE(aIndex)) return; if (!gObjIsConnected(aIndex)) return; if (CheckCommand(lpObj, Configs.Commands.IsDrop, GmSystem.cDrop, 0, 0, 0, aIndex, "Drop", "[Name] /drop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient> <Count>", Msg)) return; int ItemType = 0; int ItemIndex = 0; int Level = 0; int Skill = 0; int Luck = 0; int JoLOption = 0; int Durability = 0; int Excellent = 0; int Ancient = 0; int Element = 0; int Count = 0; if (Count < 1 || Count > 10) Count = 1; sscanf(Msg, "%d %d %d %d %d %d %d %d %d", &ItemType, &ItemIndex, &Level, &Skill, &Luck, &JoLOption, &Excellent, &Ancient, &Count); if ((ItemType < 0 || ItemType > 15) || ItemIndex < 0 || (Level<0 || Level > 15) || (Skill < 0 || Skill > 1) || (Luck < 0 || Luck > 1) || (JoLOption < 0 || JoLOption > 7) || (Durability < 0 || Durability > 255) || (Excellent < 0 || Excellent > 63) || (Ancient < 0 || Ancient > 40)) { TNotice.SendNotice(aIndex, 1, "[Drop] Usage: /drop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient> <Count>"); return; } else { int ItemNumber = ITEMGET(ItemType, ItemIndex); for (int i = 0; i < Count; i++) { if (ItemNumber == ITEMGET(13, 4) || ItemNumber == ITEMGET(13, 5)) //Dark Horse and Raven { PetItemSerialCreateSend(aIndex, lpObj->MapNumber, lpObj->X, lpObj->Y, ItemNumber, Level, Durability, Skill, Luck, JoLOption, aIndex, Excellent, 0); } else { ItemSerialCreateSend(aIndex, lpObj->MapNumber, lpObj->X, lpObj->Y, ItemNumber, Level, Durability, Skill, Luck, JoLOption, aIndex, Excellent, Ancient, 0, 0, 0, Element); } } TNotice.SendNotice(aIndex, 1, "[Drop] %d Item Created %d %d %d %d %d %d %d %d %d %d - Success", Count, ItemType, ItemIndex, Level, Durability, Skill, Luck, JoLOption, Excellent, Ancient, Element); } return; }
bool cChat::GgCommand(LPOBJ gObj, char *Msg) { if(CheckCommand(gObj, Configs.Commands.IsGg, GmSystem.cGg, 0, 0, 0, 1, "GG", "/gg <msg>", Msg)) return true; //Log.CheckProcent(Msg); TNotice.MessageAll(0, 0, gObj, "[%s]: %s", gObj->Name, Msg); //PROTECT HERE MUST BE GOOOD //Log.ConsoleOutPut(0, "[GG] %s: %s", gObj->Name,Msg); LogAddFuncColor(LOG::DARKBLUE,"[GG] %s: %s", gObj->Name,Msg); return true; }
bool cChat::VosklCommand(LPOBJ gObj, char *Msg) { if(CheckCommand(gObj, 1, GmSystem.cVoskl, 0, 0, 0, 0, "!", "! <msg>", Msg)) return true; //Log.CheckProcent(Msg); //TNotice.MessageAll(0, 0, gObj, Msg); //PROTECT HERE MUST BE GOOOD //Log.ConsoleOutPut(0, "[!] %s: %s", gObj->Name,Msg); LogAddFuncColor(LOG::DARKBLUE,"[!] %s: %s", gObj->Name,Msg); return true; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 弹出菜单初始化 VOID CMainWnd::OnMenuPopup(WPARAM wParam, LPARAM lParam) { HWND hWnd; DWORD dwSize; TCHAR tzTemp[512]; TCHAR tzPath[512]; switch (GetMenuItemID((HMENU) wParam, 0)) { case IDM_Help_Desktop: // 判断快捷方式是否存在 CheckCommand(IDM_Help_Desktop, CShortcut::Exist(CSIDL_DESKTOP)); CheckCommand(IDM_Help_StartMenu, CShortcut::Exist(CSIDL_STARTMENU)); CheckCommand(IDM_Help_ProgramMenu, CShortcut::Exist(CSIDL_PROGRAMS)); CheckCommand(IDM_Help_QuickLaunch, CShortcut::Exist(CSIDL_APPDATA)); CheckCommand(IDM_Help_VisualStudio, CVSTool::Exist()); break; case IDM_Play_Play: hWnd = CClientWnd::GetActive(); _ExIf(hWnd, SendMessage(hWnd, WM_INITMENUPOPUP, wParam, lParam)); break; case IDM_View_Toolbar: GetModuleFileName(NULL, tzTemp, MAX_PATH); wsprintf(tzPath, TEXT("\"%s\" \"%%1\""), tzTemp); dwSize = _NumOf(tzTemp); SHGetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\shell\\open\\command"), NULL, NULL, tzTemp, &dwSize); CheckCommand(IDM_View_AssociateFile, lstrcmpi(tzTemp, tzPath) == 0); break; } }
void main() { // Faz os acentos aparecerem setlocale(LC_ALL, "Portuguese"); memset(&User, 0x0, sizeof Infos); StartThread(MainThread); system("cls"); printf("Ferramenta para visualização de dados de account SOD.\n"); printf("Só serão exibidos dados referentes ao ultimo Save da account.\n"); printf("Lembre-se: as contas são salvas de 12 em 12 segundos.\n"); printf("Para sair digite out.\n"); while(1) { char szLogin[16]; printf("Entre com o id desejado, digite out para sair:"); scanf("%16s", szLogin); if(!stricmp(szLogin, "out")) break; else if(!LoadNInfo(szLogin) || !LoadOInfo(szLogin)) printf("Erro ao fazer o load da conta.\n"); else { printf("Senha: %s\n", User.AccountInfos.AccountPass); printf("Senha Numérica: %s\n", User.NewInfos.Numerica); printf("Cash: %d\n", User.NewInfos.Cash); printf("Gold do Baú: %d\n", User.AccountInfos.Gold); //printf("Personagens: %s %s %s %s\n", User.AccountInfos.Char[0].Name, User.AccountInfos.Char[1].Name, User.AccountInfos.Char[2].Name, User.AccountInfos.Char[3].Name); User.PersoSelected = NOT_SELECTED; bool saida = false; while(!saida) { char Command[20]; printf("Digite a informação desejada, ou out para sair:\n"); scanf("%20s", Command); saida = CheckCommand(Command); } } } }
bool cChat::SetDropCommand(LPOBJ gObj, char *Msg, int Index) { if(CheckCommand(gObj, Configs.Commands.IsDrop, GmSystem.cDrop, 0, 0, 1, Index, "SetDrop", "[Name] /setdrop <ItemIndex> <ItemLvl> <ItemLuck> <ItemOpt> <ItemExc> <ItemAnc>", Msg)) return true; //int ItemType = 0; int ItemIndex = 0; int Level = 0; int Skill = 0; int Luck = 0; int JoLOption = 0; int Durability = 0; int Excellent = 0; int Ancient = 0; int Element = 0; int ItemMin = 7; //MG Set Season 4.6 if(ItemIndex == 15 || ItemIndex == 20 || ItemIndex == 23 || ItemIndex == 32 || ItemIndex == 37 || ItemIndex == 47 || ItemIndex == 48) ItemMin = 8; //sscanf(Msg, "%d %d %d %d %d %d", &ItemIndex, &ItemLevel, &ItemLuck, &ItemOpt, &ItemExc, &ItemAncient); sscanf(Msg, "%d %d %d %d %d %d %d %d", &ItemIndex, &Level, &Skill, &Luck, &JoLOption, &Excellent, &Ancient, &ItemMin); if (ItemIndex < 0 || (Level<0 || Level > 15) || (Skill < 0 || Skill > 1) || (Luck < 0 || Luck > 1) || (JoLOption < 0 || JoLOption > 7) || (Durability < 0 || Durability > 255) || (Excellent < 0 || Excellent > 63) || (Ancient < 0 || Ancient > 40)) //if(ItemIndex < 0 || (ItemLevel<0 || ItemLevel > 13) || (ItemOpt < 0 || ItemOpt > 7) || (ItemLuck < 0 || ItemLuck > 1) || (ItemExc < 0 || ItemExc > 63) || (ItemAncient < 0 || ItemAncient > 40)) { //TNotice.SendNotice(aIndex, 1, "[SetDrop] Usage: /setdrop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Durability> <Excellent> <Ancient> <Count>"); TNotice.MessageLog(1, gObj, "[SetDrop] Usage: /setdrop <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient>"); return true; } OBJECTSTRUCT *gUbj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); for(int i = ItemMin; i < 12; i++) { int Item = i * 512 + ItemIndex; int Rand1 = rand() % 3; int Rand2 = rand() % 3; //ItemSerialCreateSend(gUbj->m_Index, gUbj->MapNumber, (int)gUbj->X + Rand1, (int)gUbj->Y + Rand2, Item, ItemLevel, 0, 0, // ItemLuck, ItemOpt, gUbj->m_Index, ItemExc, ItemAncient, lDuration, dwEventIndex, SocketOption, MainAttribute); ItemSerialCreateSend(gUbj->m_Index, gUbj->MapNumber, gUbj->X + Rand1, gUbj->Y + Rand2, Item, Level, Durability, Skill, Luck, JoLOption, gUbj->m_Index, Excellent, Ancient, 0, 0, 0, Element); //ItemSerialCreateSend(Index, tObj->MapNumber, (int)tObj->X, (int)tObj->Y, Item, ItemLevel, 0, ItemSkill, ItemLuck, ItemOpt, Index, ItemExc, ItemAncient, lDuration, dwEventIndex, SocketOption, MainAttribute); } return true; }
bool cChat::DiskCommand(LPOBJ gObj, int Index) { if(CheckCommand(gObj, 1, GmSystem.cDisconnect, 0, 0, 0, Index, "DC", "[Name] /disconnect", "")) return true; OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); TNotice.SendNotice(Index,1,"[Disconnect] %s was disconnected.", tObj->Name); if(GmSystem.IsAdmin(gObj->Name) == 1) TNotice.SendNotice(Index,1,"[Disconnect] You was disconnected by [Admin] %s", gObj->Name); else if(GmSystem.IsAdmin(gObj->Name) == 2) TNotice.SendNotice(Index,1,"[Disconnect] You was disconnected by [GM] %s", gObj->Name); CloseClient(Index); return true; }
bool cChat::SummonCommand(LPOBJ gObj, int Index) { if(CheckCommand(gObj, 1, GmSystem.cTrace, 0, 0, 0, Index, "Track", "[Name] /track", "")) return true; OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); gObjTeleport(tObj->m_Index, gObj->MapNumber, (int)gObj->X, (int)gObj->Y); TNotice.SendNotice(Index,1,"[Track] You successfully summoned %s",tObj->Name); if(GmSystem.IsAdmin(gObj->Name) == 1) TNotice.SendNotice(Index,1,"[Track] You was summoned to [Admin] %s", gObj->Name); else if(GmSystem.IsAdmin(gObj->Name) == 2) TNotice.SendNotice(Index,1,"[Track] You was summoned to [GM] %s", gObj->Name); return true; }
OMX_ERRORTYPE State::DoSendCommand( OMX_COMMANDTYPE Cmd, OMX_U32 nParam, OMX_PTR pCmdData) { OMX_ERRORTYPE ret = OMX_ErrorNone; CMD_MSG sMsg; /* reset Cmd pool if pendingCmd is dead */ if(Cmd == OMX_CommandMax) { base->pendingCmd.cmd = OMX_CommandMax; return OMX_ErrorNone; } if(base->pendingCmd.cmd != OMX_CommandMax) return OMX_ErrorNotReady; LOG_DEBUG("Sending Command[cmd:%d, param: %d, data: %d] to Component[%s].\n", Cmd, nParam, pCmdData, base->name); ret = CheckCommand(Cmd, nParam, pCmdData); if(ret != OMX_ErrorNone) return ret; base->pendingCmd.cmd = Cmd; base->pendingCmd.nParam = nParam; base->pendingCmd.pCmdData = pCmdData; base->pendingCmd.bProcessed = OMX_FALSE; sMsg.Cmd = Cmd; sMsg.nParam = nParam; sMsg.pCmdData = pCmdData; base->pCmdQueue->Add(&sMsg); LOG_DEBUG("Sending Command[cmd:%d, param: %d, data: %d] to Component[%s] done.\n", Cmd, nParam, pCmdData, base->name); ret = (base->*Process)(COMMAND); return ret; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 打开文件 VOID CMainWnd::OnFileOpen(PCTSTR ptzFileName) { TCHAR tzFileName[MAX_PATH]; TCHAR tzOpenError[MAX_PATH * 2]; static BOOL s_bShowOpen = FALSE; if (s_bShowOpen == FALSE) { s_bShowOpen = TRUE; if (CRawPlayer::m_bSync) { CheckCommand(IDM_Play_Synchronize, CRawPlayer::ToggleSync()); } if (ptzFileName) { CUtility::TrimQuotMark(tzFileName, ptzFileName); } else { tzFileName[0] = 0; } if (COpenDlg::Open(tzFileName) != ERROR_CANCELLED) { // 结果处理 if (COpenDlg::m_pWnd && CClientWnd::Load(COpenDlg::m_pWnd)) { // 添加到新近文件列表 CRecentFile::Add(tzFileName); } else { // 打开文件错误 wsprintf(tzOpenError, LNG_OpenErr, tzFileName); ErrorBox(tzOpenError); } } s_bShowOpen = FALSE; } }
bool cChat::StatusCommand(LPOBJ gObj, char *Msg, int Index) { if(CheckCommand(gObj, Configs.Commands.IsStatus, GmSystem.cStatus, 0, 0, 0, Index, "Status", "[Name] /status", Msg)) return true; OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); TNotice.MessageLog(0,gObj,"IP Address: %s",tObj->Ip_addr); TNotice.MessageLog(0,gObj,"Account: %s | Character: %s",tObj->AccountID,tObj->Name); TNotice.MessageLog(0,gObj,"Level: %d | Zen: %d",tObj->Level,tObj->Money); TNotice.MessageLog(0,gObj,"Map: %s (%d)(%d,%d)",User.GetMapName(tObj->MapNumber),tObj->MapNumber,tObj->X,tObj->Y); /*if (AddTab[tObj->m_Index].IsMarried) MessageLog(0, gObj, "Married on %s | Resets: %d", AddTab[tObj->m_Index].MarryName, AddTab[tObj->m_Index].Resets); else MessageLog(0, gObj, "Not married | Resets: %d", AddTab[tObj->m_Index].Resets);*/ TNotice.MessageLog(1, gObj, "[Status][GM] %s get your status!", gObj->Name); return true; }
bool cChat::SkinCommand(LPOBJ gObj, char *Msg, int Index) { if(CheckCommand(gObj, Configs.Commands.SkinEnabled, GmSystem.cSkin, 0, 0, 0, Index, "Skin", "[Name] /skin <num>", Msg)) return true; int NumSkin = 0; sscanf(Msg,"%d", &NumSkin); OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index); tObj->m_Change = NumSkin; gObjViewportListProtocolCreate(tObj); if(tObj == gObj) TNotice.MessageLog(1, tObj, "[Skin] Your Skin was changed."); else { TNotice.MessageLog(1, gObj, "[Skin] You successfully change %s Skin.", tObj->Name); TNotice.MessageLog(1, tObj, "[Skin] Your Skin was changed by %s.", gObj->Name); } return true; }
int main(void) { char command[10]; QUEUE *pQueue = malloc(sizeof(QUEUE)); pQueue->front = NULL; pQueue->rear = NULL; pQueue->count = 0; while(true) { printf(">>"); scanf("%s",command); if(!CheckCommand(command)) { puts("[Invalid]"); continue; } if(!strcmp(command,"q")||!strcmp(command,"quit")) break; else if(!strcmp(command,"h")||!strcmp(command,"history")) { printf("queue count = %d\n",pQueue->count); EnqueueCommand(pQueue,command); } else { printf("[Valid] %s\n",command); EnqueueCommand(pQueue,command); } } return 0; }
bool cChat::OnlineCommand(LPOBJ gObj, char *Msg) { char szTemp[256]; int iGM = 0; int iPlayer = 0; for(int x = OBJ_MIN; x < OBJ_MAX; x++) { OBJECTSTRUCT * lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(x); if(lpObj->Connected == PLAYER_PLAYING) { if(lpObj->Authority == 8 || lpObj->Authority == 32) { iGM++; } iPlayer++; } } if(CheckCommand(gObj, Configs.Commands.IsOnline, GmSystem.NONE, 0, 0, 0, 0, "Online", "/online", Msg)) return true; TNotice.MessageLog(1, gObj, "[ONLINE]: %d Player(s), %d GM(s)",iPlayer,iGM); return true; }
/* * main program */ int main(int argc, char** argv) { //global var time_t sec0, sec1; unsigned int delayPixel= 120000, delayGyrodataSending = 25000; unsigned int idPayload = 303, useKeyboardCmd = 0, buffer_max_num = 64; unsigned char keyChar; int gpioOK = 0; dictionary *iniDict; //ini dictionery char strPathCfg[255]; GPS_DATA last_posx; //init last gps pos last_posx.gps_status = last_posx.gps_loc.lat = last_posx.gps_loc.lon = 0; last_posx.gps_speed = last_posx.gps_altitude = last_posx.gps_time = 0; //show titel #if VERBOSE==1 printf("%s", APP_TITEL); #endif //init pin switch gpioOK = wiringPiSetup(); if(gpioOK != -1) { pinMode(6, INPUT); pullUpDnControl(6, PUD_UP); } else printf("gpio init eror\r\n"); //parsing argumen jika ada if(argc>2) { //default cfg file getcwd(strPathCfg, sizeof(strPathCfg)); strcat(strPathCfg, "/"); strcat(strPathCfg, CFG_NAME); int i; for(i=1;i<(argc-1);i++) { //delay pixel if(strcmp("-d",argv[i])==0) delayPixel = atoi(argv[++i]); //id payload if(strcmp("-i",argv[i])==0) idPayload = atoi(argv[++i]); //pake keyboard ato tidak if(strcmp("-k",argv[i])==0) useKeyboardCmd = atoi(argv[++i]); //gyro send if(strcmp("-g",argv[i])==0) delayGyrodataSending = atoi(argv[++i]); //buffer size if(strcmp("-b",argv[i])==0) buffer_max_num = atoi(argv[++i]); } } else //baca dari cfg file { //load ini file //char strCfg[80]; if(argc==2) { strcpy(strPathCfg, argv[1]); } else { //get cwd if (getcwd(strPathCfg, sizeof(strPathCfg)) != NULL) printf("Current working dir: %s\r\n", strPathCfg); else { strcpy(strPathCfg, argv[1]); } } //check file exists strcat(strPathCfg, "/"); strcat(strPathCfg, CFG_NAME); if(!file_exist(strPathCfg)) { printf("Configuration file %s not found!!!\r\n", strPathCfg ); return(EXIT_FAILURE); } //load from config file printf("Loading configuration file from %s\r\n", strPathCfg); //load ini parser iniDict = iniparser_load(strPathCfg); //read cfg value if(iniDict) { idPayload = iniparser_getint(iniDict,"payload:id",100); delayPixel = iniparser_getint(iniDict,"payload:cam_delay",120000); delayGyrodataSending = iniparser_getint(iniDict,"payload:g_delay",20000); buffer_max_num = iniparser_getint(iniDict,"payload:buffer",64); } } //show config setup printf("======================================\r\n"); printf("Configuration :\r\n"); printf("Delay Pixel = %d uS\r\n", delayPixel); printf("ID Payload = %d\r\n", idPayload); printf("Use Keyboard = %d\r\n", useKeyboardCmd); printf("Gyro Delay = %d uS\r\n", delayGyrodataSending); printf("Buffer = %d byte\r\n", buffer_max_num); printf("======================================\r\n"); //init bus i2c int i2c_hdl = I2C_Init_Bus(i2c_dev, &statusPeripheral); //init start adxl345 ADXL345_Init_Start(i2c_hdl, adxl345_addr, &statusPeripheral); //init itg3200 ITG3200_Init_Start(i2c_hdl, itg3200_addr, &statusPeripheral); //open port unsigned char buffRX[COM_BUFF_NUM]; int buffNumRX; //make it as null string buffRX[COM_BUFF_NUM-1] = 0; if (OpenComport(COM_PORT, COM_SPEED)) { fprintf(stderr, "Open port %d failed : %s\r\n!!!", COM_PORT, strerror(errno)); return errno; } #if VERBOSE==1 printf("communication port opened\r\n"); #endif //tes port com //while(1){ ////ambil perintah dari comport //buffNumRX = PollComport(COM_PORT, buffRX, (COM_BUFF_NUM - 2)); //if (buffNumRX > 0) { ////printf("%d = %s\n", buffNumRX, buffRX); //int i; //for(i=0;i<buffNumRX;i++) //{ //printf("%X %s", buffRX[i], (i<buffNumRX-1) ? "":"\n"); //} //char ss[10]; //snprintf(ss,6,"%d",(buffRX[1]<<8)+buffRX[2]); //printf("id = %s\n", ss); //} //} //open cam CvCapture *camHdl = cvCaptureFromCAM(CV_CAP_ANY); Cam_Init_Start(camHdl, &statusPeripheral); //main loop while (1) { if(useKeyboardCmd) { //dummy keyboard input printf("press command key\r\n"); keyChar = getchar(); //if (keyChar == cmdList[3][0]) //opsState = STATE_EXIT; //if (keyChar == cmdList[2][0]) //opsState = STATE_GET_CAM_DATA; //if (keyChar == cmdList[1][0]) //opsState = STATE_GET_G_DATA; if (keyChar == cmdList[3]) opsState = STATE_EXIT; if (keyChar == cmdList[2]) opsState = STATE_GET_CAM_DATA; if (keyChar == cmdList[1]) opsState = STATE_GET_G_DATA; } //ambil perintah dari comport buffNumRX = PollComport(COM_PORT, buffRX, (COM_BUFF_NUM - 2)); //data diterima -> cek printah if (buffNumRX > 0) { //int i; //unsigned char *chrPos; ////make it null string //if (buffRX[buffNumRX] != 0) //buffRX[buffNumRX] = 0; ////default ops state = idle //opsState = STATE_IDLE; ////add new state //for (i = 0; i < CMD_COUNTER; i++) { //chrPos = strstr(buffRX,cmdList[i]); //if ((chrPos != NULL) && ((chrPos - buffRX + 1) == 1)) { //got a match? ////proses state //opsState = i; //break; //} //} opsState = CheckCommand(cmdList, buffNumRX, buffRX); } //cek tobmol if(gpioOK != -1) { //printf("%d\r\n", digitalRead(6)); //SendByte(COM_PORT, digitalRead(6)+0x30); //usleep(1e5); if(digitalRead(6) == 0) { usleep(5e5); if(digitalRead(6) == 0) opsState = STATE_SHUTDOWN_OS; } } //lakukan proses seuai ops state if (opsState == STATE_EXIT) { #if VERBOSE==1 printf("exiting...\r\n"); //fflush(stdout); #endif break; } //shutdown os if (opsState == STATE_SHUTDOWN_OS) { printf("shutdown...\r\n"); break; } //restart os if (opsState == STATE_RESTART_OS) { printf("restart...\r\n"); break; } //other state switch (opsState) { case STATE_IDLE: //idle state //SendByte(COM_PORT, 's'); break; case STATE_GET_G_DATA: //ambil data g //SendByte(COM_PORT, 'g'); GetAndSendAccGyro(i2c_hdl, adxl345_addr, itg3200_addr, idPayload, delayGyrodataSending, &last_posx, buffer_max_num); break; case STATE_GET_CAM_DATA://ambil data cam //SendByte(COM_PORT, 'c'); #if VERBOSE==1 printf("grab camera start\r\n"); sec0 = time(NULL); #endif GrabAndSendCameraData(camHdl, i2c_hdl, 5, delayPixel, idPayload, &last_posx, buffer_max_num); #if VERBOSE==1 sec1 = time(NULL); printf("grab camera finish in %lds\r\n", (sec1 - sec0)); #endif opsState = STATE_IDLE; //usleep(5e4); //ComportFlush(COM_PORT); //usleep(1.5e6); break; case STATE_GET_STATUS: //ambil status payload snprintf((char*)buffRX, 16, "s,%.3d,%d,%d\r", idPayload, 990, statusPeripheral); //SendBuf(COM_PORT, buffRX, 10); //snprintf((char*)buffRX, 16, "s,%.3d,%d\r", idPayload, 990); cprintf(COM_PORT, buffRX); opsState = STATE_IDLE; //go back to idle #if VERBOSE==1 printf("sendstatus reply = %s\r\n", buffRX); #endif break; case STATE_REINIT_PERIPHERAL: //reinit peripheral //init cam Cam_Init_Start(camHdl, &statusPeripheral); //init bus i2c i2c_hdl = I2C_Init_Bus(i2c_dev, &statusPeripheral); //init start adxl345 ADXL345_Init_Start(i2c_hdl, adxl345_addr, &statusPeripheral); //init itg3200 ITG3200_Init_Start(i2c_hdl, itg3200_addr, &statusPeripheral); opsState = STATE_IDLE; //go back to idle break; case STATE_READ_WRITE_CONFIGURATION: //read/write config file printf("Opening configuration file %s\r\n", strPathCfg); //load ini file iniDict = iniparser_load(strPathCfg); //write if neccessary if(buffRX[1]==1) //write setting { char stmp[10]; //id snprintf(stmp,10,"%d", (buffRX[2]<<8)+buffRX[3]); iniparser_set(iniDict,"payload:id",stmp); //cam delay in ms snprintf(stmp,10,"%d", buffRX[4]*1000); iniparser_set(iniDict,"payload:cam_delay",stmp); //g delay in ms snprintf(stmp,10,"%d", buffRX[5]*1000); iniparser_set(iniDict,"payload:g_delay",stmp); //buffer max snprintf(stmp,10,"%d", buffRX[6]); iniparser_set(iniDict,"payload:buffer",stmp); Save_INI_File(iniDict, strPathCfg); } //reload ini file iniDict = iniparser_load(strPathCfg); //read cfg value if(iniDict) { idPayload = iniparser_getint(iniDict,"payload:id",100); delayPixel = iniparser_getint(iniDict,"payload:cam_delay",120000); delayGyrodataSending = iniparser_getint(iniDict,"payload:g_delay",20000); buffer_max_num = iniparser_getint(iniDict,"payload:buffer",64); } //send reply always snprintf((char*)buffRX, 25, "f,%d,%d,%d,%d\r", idPayload, delayPixel, delayGyrodataSending,buffer_max_num); cprintf(COM_PORT, buffRX); opsState = STATE_IDLE; //go back to idle #if VERBOSE==1 printf("send config reply = %s\r\n", buffRX); #endif break; default: break; } } //release cam cvReleaseCapture(&camHdl); //release port CloseComport(COM_PORT); //close bus closeBus(i2c_hdl); //free ini handler if(iniDict) iniparser_freedict(iniDict); //cek shutdown atau restart switch (opsState) { case STATE_SHUTDOWN_OS: system("sudo shutdown now"); break; case STATE_RESTART_OS: system("sudo shutdown -r now"); break; default: break; } //return return (EXIT_SUCCESS); }
HRESULT RunCommandLoop(_In_ ISpellChecker* spellChecker) { wprintf(L"Commands:\n"); wprintf(L"quit - Quit\n"); wprintf(L"add <word> - Add word\n"); wprintf(L"ac <word> <word> - Add autocorrect pair\n"); wprintf(L"ign <word> - Ignore word\n"); wprintf(L"chkb <text> - Check text (batch - pasted text or file open)\n"); wprintf(L"chk <text> - Check text (as you type)\n"); HRESULT hr = S_OK; while (SUCCEEDED(hr)) { wprintf(L"> "); wchar_t line[MAX_PATH]; hr = StringCchGets(line, ARRAYSIZE(line)); if (SUCCEEDED(hr)) { wchar_t command[MAX_PATH]; int count = swscanf_s(line, L"%s", command, static_cast<unsigned int>(ARRAYSIZE(command))); hr = (count == 1) ? hr : E_FAIL; if (SUCCEEDED(hr)) { _Analysis_assume_nullterminated_(command); const size_t lineSize = wcslen(line); const size_t cmdSize = wcslen(command); if (cmdSize == lineSize) { if (wcscmp(L"quit", command) == 0) { break; } else { wprintf(L"Invalid command\n"); } } else { PCWSTR buffer = line + wcslen(command); if (wcscmp(L"add", command) == 0) { hr = AddCommand(spellChecker, buffer); } else if (wcscmp(L"ac", command) == 0) { hr = AutoCorrectCommand(spellChecker, buffer); } else if (wcscmp(L"ign", command) == 0) { hr = IgnoreCommand(spellChecker, buffer); } else if (wcscmp(L"chkb", command) == 0) { hr = CheckCommand(spellChecker, buffer); } else if (wcscmp(L"chk", command) == 0) { hr = CheckAsYouTypeCommand(spellChecker, buffer); } else { wprintf(L"Invalid command\n"); } } } } } PrintErrorIfFailed(L"RunCommandLoop", hr); return hr; }
fsal_posixdb_status_t fsal_posixdb_recursiveDelete(fsal_posixdb_conn * p_conn, char *handleid_str, char *handlets_str, fsal_nodetype_t ftype) { PGresult *p_res; fsal_posixdb_status_t st; fsal_nodetype_t ftype_tmp; unsigned int i; unsigned int i_max; const char *paramValues[2]; /* Sanity check */ if(!p_conn || !handleid_str || !handlets_str) { ReturnCodeDB(ERR_FSAL_POSIXDB_FAULT, 0); } if(ftype == FSAL_TYPE_DIR) { /* We find all the children of the directory in order to delete them, and then we delete the current handle */ paramValues[0] = handleid_str; paramValues[1] = handlets_str; p_res = PQexecPrepared(p_conn, "lookupChildrenFU", 2, paramValues, NULL, NULL, 0); CheckResult(p_res); i_max = (unsigned int)PQntuples(p_res); for(i = 0; i < i_max; i++) { ftype_tmp = (fsal_nodetype_t) atoi(PQgetvalue(p_res, i, 2)); if(ftype_tmp == FSAL_TYPE_DIR) { st = fsal_posixdb_recursiveDelete(p_conn, PQgetvalue(p_res, i, 0), PQgetvalue(p_res, i, 1), ftype_tmp); } else { st = fsal_posixdb_deleteParent(p_conn, PQgetvalue(p_res, i, 0), /* handleidparent */ PQgetvalue(p_res, i, 1), /* handletsparent */ handleid_str, handlets_str, PQgetvalue(p_res, i, 3), /* filename */ atoi(PQgetvalue(p_res, i, 4)) /* nlink */ ); } if(FSAL_POSIXDB_IS_ERROR(st)) { PQclear(p_res); return st; } } PQclear(p_res); } /* Delete the Handle */ /* All Parent entries having this handle will be deleted thanks to foreign keys */ paramValues[0] = handleid_str; paramValues[1] = handlets_str; /* invalidate name cache */ fsal_posixdb_InvalidateCache(); p_res = PQexecPrepared(p_conn, "deleteHandle", 2, paramValues, NULL, NULL, 0); CheckCommand(p_res); ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0); }
void MainLoop() { DemoData.Type=255; MouseString=new char[100]; memset(MouseString,0,100); while (!Done) { if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else if (Keys[VK_ESCAPE]) Done=true; else { PlayBackFunction(); WriteDebug("Main Loop\n\n"); CurrentCursor=Arrow; glClear(0x4100); SwitchTo2D(); ToolTip=LastClickedToolTip; memset(ItemNameString,0,256); //glFlush(); glColor4f(1,1,1,1); if (CommandLineCommand) ErrorMessage=""; if (CommandLineCommand && CommandLineEnter) { CommandLineCommand=false; CommandLineEnter=false; CommandLineReading=false; CheckCommand(); CommandLine=""; } MainGUI.CheckGUI(); for (int x=0; x<256; x++) Keys[x]=false; if (MainGUI.ItemList[3].ButtonPushed && ActualWorld) ActualWorld->CalculateParticles(); glColor4f(highblue); rectangle(-1,35,1025,35); glColor4f(1,1,1,1); PolyCounter=0; VertexCounter=0; ObjMemCounter=0; CallCounter=0; /*if (TextureList) { for (TEXTURE *t=TextureList; t; t=t->Next) { ObjMemCounter+=sizeof(TEXTURE); ObjMemCounter+=4*t->XRes*t->XRes*8; } } if (Scenes) { for (SCENE *s=Scenes; s; s=s->Next) { ObjMemCounter+=s->ObjectCapacity*sizeof(OBJECT); for (int x=0; x<s->ObjectNum; x++) { ObjMemCounter+=s->ObjectList[x].VertexCapacity*sizeof(VERTEX); for (int y=0; y<s->ObjectList[x].VertexNum; y++) ObjMemCounter+=s->ObjectList[x].VertexList[y].EdgeCapacity*4; ObjMemCounter+=s->ObjectList[x].PolygonCapacity*sizeof(POLYGON); ObjMemCounter+=s->ObjectList[x].EdgeCapacity*sizeof(EDGE); } } } if (Worlds) { for (WORLD *w=Worlds;w;w=w->Next) { ObjMemCounter+=w->ObjectCapacity*sizeof(WORLDOBJECT); for (int x=0; x<w->ObjectNum; x++) if (w->ObjectList[x].EmitterData) { ObjMemCounter+=sizeof(EMITTERDATA); if (w->ObjectList[x].EmitterData->Particles) ObjMemCounter+=(sizeof(PARTICLE))*w->ObjectList[x].EmitterData->MaxParticles; if (w->ObjectList[x].EmitterData->Particles && w->ObjectList[x].EmitterData->Tail) ObjMemCounter+=256*sizeof(VECTOR3)*w->ObjectList[x].EmitterData->MaxParticles; } } }*/ MainGUI.DrawGUI(); glErrorCheck(); if (!MainGUI.ItemList[3].ActiveBranch && !MainGUI.ItemList[0].ActiveBranch) { for (WORLD *a=Worlds;a;a=a->Next) for (int x=0; x<a->ObjectNum; x++) if (a->ObjectList[x].Primitive==aDDict_SPHEREEMITTER || a->ObjectList[x].Primitive==aDDict_CUBEEMITTER || a->ObjectList[x].Primitive==aDDict_CYLINDEREMITTER) a->ObjectList[x].EmitterData->LastFrameChecked=timeGetTime(); } glDisable(GL_DEPTH_TEST); if (strcmp(ErrorMessage,"") && !ReadLine) glColor4f(1,1,0.3f,1); glRasterPos2i(410,21); if (!CommandLineReading && !ReadLine) { if (!strcmp(ErrorMessage,"")) glPrint(ToolTip,base); else glPrint(ErrorMessage,base); } else { char *Buffer=new char [strlen(CommandLine)+100]; sprintf(Buffer,"%s_",CommandLine); glPrint(Buffer,base); delete Buffer; } if (strlen(MouseString) /*&& !strcmp(MouseString,"")*/) { glColor4f(0,0,0,1); glRasterPos2i(mx+16,my+12); glPrint(MouseString,base); glColor4f(1,1,1,1); glRasterPos2i(mx+15,my+11); glPrint(MouseString,base); } memset(MouseString,0,100); glColor4f(0,0,0,1); glRasterPos2i(mx+16,my); glPrint(ItemNameString,base); glColor4f(1,1,1,1); glRasterPos2i(mx+15,my-1); glPrint(ItemNameString,base); glEnable(GL_DEPTH_TEST); glColor4f(1,1,1,1); SetCursor(CurrentCursor); SwapBuffers(hDC); if (WaitLeftButton) { WaitLeftButtonRelease(); WaitLeftButton=false; } if (WaitMiddleButton) { WaitMiddleButtonRelease(); WaitMiddleButton=false; } if (WaitRightButton) { WaitRightButtonRelease(); WaitRightButton=false; } if (CommandLineEnter) { CommandLine=""; CommandLineEnter=false; ReadLine=false;} if (LeftButton || RightButton || MiddleButton) SetCapture(hWnd); else ReleaseCapture(); lastwheel=Wheel; Wheel=0; Sleep(10); } } }