void XBitmap :: CheckFilterProfile () { if (NULL == __XBMFProfile__) { XResourceLibrary* lib = new XResourceLibrary ("OOLGLIB"); XGLibProcProfInit* func = (XGLibProcProfInit*) lib->LoadFunction ("OOL_GLIB_INIT"); XBitmapFilter dummy; dummy.cbFix = 0; DosSleep(100); if (NULL != func) { ULONG rc; if (0 == (rc = func (NULL, 0, 0, 0))) { ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow (GetLastErrorMessage (lib, &rc, &dummy), rc); } DosAllocMem ((PPVOID) &__XBMFProfile__, rc, PAG_READ | PAG_WRITE | PAG_COMMIT); __XBMFProfile__->cbFix = rc; if (BFE_OK != (rc = func (__XBMFProfile__, 0, 0, 0))) { ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow (GetLastErrorMessage (lib, &rc, &dummy), rc); } lib->UnLoadFunction ((PFNWP) func); } else { ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow("Could not load function \"OOL_GLIB_INIT\" from library \"OOLGLIB.DLL\".", error); } delete lib; } }
XBitmapFilter* XBitmap :: GetExportFilterStruct (const char* filename) { XBitmapFilter* filter; XBitmapFilter dummy; dummy.cbFix = 0; CheckFilterProfile (); XResourceLibrary* lib = new XResourceLibrary ("OOLGLIB"); XGLibProcFltInit* func = (XGLibProcFltInit*) lib->LoadFunction ("OOL_GLIB_EXP_INIT"); DosSleep(100); if (NULL != func) { ULONG rc; if (0 == (rc = func (filename, __XBMFProfile__, NULL, 0))) OOLThrow (GetLastErrorMessage (lib, &rc, &dummy), rc); DosAllocMem ((PPVOID) &filter, rc, PAG_READ | PAG_WRITE | PAG_COMMIT); filter->cbFix = rc; filter->hab = XApplication :: GetApplication ()->GetAnchorBlock (); if (BFE_OK != (rc = func (filename, __XBMFProfile__, filter, 0))) OOLThrow (GetLastErrorMessage (lib, &rc, filter), rc); lib->UnLoadFunction ((PFNWP) func); } else { ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow("Could not load function \"OOL_GLIB_EXP_INIT\" from library \"OOLGLIB.DLL\".", error); } delete lib; return filter; }
void __stdcall serviceMain(DWORD dwArgc, char **lpszArgv) { Logging::LoggerRef logRef(ppg->getLogger(), "WindowsService"); serviceStatusHandle = RegisterServiceCtrlHandler("PaymentGate", serviceHandler); if (serviceStatusHandle == NULL) { logRef(Logging::FATAL) << "Couldn't make RegisterServiceCtrlHandler call: " << GetLastErrorMessage(GetLastError()); return; } SERVICE_STATUS serviceStatus{ SERVICE_WIN32_OWN_PROCESS, SERVICE_START_PENDING, 0, NO_ERROR, 0, 1, 3000 }; if (SetServiceStatus(serviceStatusHandle, &serviceStatus) != TRUE) { logRef(Logging::FATAL) << "Couldn't make SetServiceStatus call: " << GetLastErrorMessage(GetLastError()); return; } serviceStatus = { SERVICE_WIN32_OWN_PROCESS, SERVICE_RUNNING, SERVICE_ACCEPT_STOP, NO_ERROR, 0, 0, 0 }; if (SetServiceStatus(serviceStatusHandle, &serviceStatus) != TRUE) { logRef(Logging::FATAL) << "Couldn't make SetServiceStatus call: " << GetLastErrorMessage(GetLastError()); return; } try { ppg->run(); } catch (std::exception& ex) { logRef(Logging::FATAL) << "Error occured: " << ex.what(); } serviceStatus = { SERVICE_WIN32_OWN_PROCESS, SERVICE_STOPPED, 0, NO_ERROR, 0, 0, 0 }; SetServiceStatus(serviceStatusHandle, &serviceStatus); }
bool FileSystem::AllocateFile(const char* filename, int64 size, bool sparse, CString& errmsg) { errmsg.Clear(); bool ok = false; #ifdef WIN32 HANDLE hFile = CreateFileW(UtfPathToWidePath(filename), GENERIC_WRITE, FILE_SHARE_READ, 0, CREATE_NEW, 0, nullptr); if (hFile == INVALID_HANDLE_VALUE) { errmsg = GetLastErrorMessage(); return false; } if (sparse) { // try to create sparse file (supported only on NTFS partitions); it may fail but that's OK. DWORD dwBytesReturned; DeviceIoControl(hFile, FSCTL_SET_SPARSE, nullptr, 0, nullptr, 0, &dwBytesReturned, nullptr); } LARGE_INTEGER size64; size64.QuadPart = size; SetFilePointerEx(hFile, size64, nullptr, FILE_END); SetEndOfFile(hFile); CloseHandle(hFile); ok = true; #else // create file FILE* file = fopen(filename, FOPEN_AB); if (!file) { errmsg = GetLastErrorMessage(); return false; } fclose(file); // there are no reliable function to expand file on POSIX, so we must try different approaches, // starting with the fastest one and hoping it will work // 1) set file size using function "truncate" (this is fast, if it works) truncate(filename, size); // check if it worked ok = FileSize(filename) == size; if (!ok) { // 2) truncate did not work, expanding the file by writing to it (that's slow) truncate(filename, 0); file = fopen(filename, FOPEN_AB); if (!file) { errmsg = GetLastErrorMessage(); return false; } char c = '0'; fwrite(&c, 1, size, file); fclose(file); ok = FileSize(filename) == size; } #endif return ok; }
int registerService() { #ifdef WIN32 Logging::LoggerRef logRef(ppg->getLogger(), "ServiceRegistrator"); char pathBuff[MAX_PATH]; std::string modulePath; SC_HANDLE scManager = NULL; SC_HANDLE scService = NULL; int ret = 0; for (;;) { if (GetModuleFileName(NULL, pathBuff, ARRAYSIZE(pathBuff)) == 0) { logRef(Logging::FATAL) << "GetModuleFileName failed with error: " << GetLastErrorMessage(GetLastError()); ret = 1; break; } modulePath.assign(pathBuff); std::string moduleDir = modulePath.substr(0, modulePath.find_last_of('\\') + 1); modulePath += " --config=" + moduleDir + "payment_service.conf -d"; scManager = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT | SC_MANAGER_CREATE_SERVICE); if (scManager == NULL) { logRef(Logging::FATAL) << "OpenSCManager failed with error: " << GetLastErrorMessage(GetLastError()); ret = 1; break; } scService = CreateService(scManager, SERVICE_NAME, NULL, SERVICE_QUERY_STATUS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, modulePath.c_str(), NULL, NULL, NULL, NULL, NULL); if (scService == NULL) { logRef(Logging::FATAL) << "CreateService failed with error: " << GetLastErrorMessage(GetLastError()); ret = 1; break; } logRef(Logging::INFO) << "Service is registered successfully"; logRef(Logging::INFO) << "Please make sure " << moduleDir + "payment_service.conf" << " exists"; break; } if (scManager) { CloseServiceHandle(scManager); } if (scService) { CloseServiceHandle(scService); } return ret; #else return 0; #endif }
void Pdb::Error(const char *s) { String txt = "Error!&"; if(s) txt << s << "&"; LLOG("ERROR: " << DeQtf(GetLastErrorMessage())); Exclamation(txt + DeQtf(GetLastErrorMessage())); running = false; Stop(); }
serial_status_t serial_read(serial_h connection, char *buffer, long *size) { DWORD rbytes ; if ( !ReadFile((HANDLE)connection, buffer, (DWORD)*size, &rbytes, NULL)) { COMSTAT cstat ; DWORD errs ; printf("Read error %d %s\n", GetLastError(), GetLastErrorMessage()) ; if ( ClearCommError((HANDLE)connection, &errs, &cstat) ) { printf("DSR %d CTS %d RLSD %d TXOFF %d XOFF %d EOF %d RXQ %d TXQ %d\n" "ERRS %x\n" "rbytes %d\n", cstat.fCtsHold, cstat.fDsrHold, cstat.fRlsdHold, cstat.fXoffHold, cstat.fXoffSent, cstat.fEof, cstat.cbInQue, cstat.cbOutQue, errs, rbytes) ; } return SERIAL_ERROR ; } if ( rbytes == 0 ) return SERIAL_TIMEOUT ; *size = (long)rbytes ; return SERIAL_OK ; }
CWin32Exception::CWin32Exception( const CStringW &where, DWORD error) : CCommException(where, GetLastErrorMessage(error)), m_error(error) { }
bool UninstallService(String name, String& status) { ServiceHandle scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(!scm) { status = "Cannot open service manager"; return false; } ServiceHandle me = OpenService(scm, name, SC_MANAGER_ALL_ACCESS); if(!me) { status = "Cannot open service."; return false; } SERVICE_STATUS srvstat; if(ControlService(me, SERVICE_CONTROL_STOP, &srvstat)) { int start = msecs(); while(QueryServiceStatus(me, &srvstat) && srvstat.dwCurrentState != SERVICE_STOPPED && msecs(start) < 10000) Sleep(100); } if(!DeleteService(me)) { status = NFormat("Error deleting service: %s", GetLastErrorMessage()); return false; } return true; }
/*@ XBitmap::Save(const char* filename, XBitmapFilter * params, BOOL releaseParams) @group saving a bitmap @remarks Save a bitmap from a file. <P><I>If this method is used, GBM.DLL and OLLGLIB.DLL must be in the LIBPATH.</I> <P>Due a bug (?) in OS/2-GPI the bitmap should be in 24-bit-format. @parameters <t 'ø' c=2> øchar * fileName øfilename of the file to load øXBitmapFilter * params øfiletype specific filter informations. An initialized structure has to be created by XBitmap :: GetImportFilterStruct () or XGLibFileDialog. (default is NULL) øBOOL releaseParams øfilter informations will be released after usages <\t> @exceptions If the method fails to create a new bitmap an exception of the type XException is thrown. */ void XBitmap :: Save (const char* filename, XBitmapFilter* params, BOOL releaseParams) { XResourceLibrary* lib = new XResourceLibrary ("OOLGLIB"); XGLibProcIO* func = (XGLibProcIO*) lib->LoadFunction ("OOL_GLIB_EXP"); DosSleep(100); if (NULL != func) { ULONG rc; if (NULL == params) params = GetExportFilterStruct (filename); params->hps = hps; params->hbm = hbm; params->hab = XApplication :: GetApplication ()->GetAnchorBlock (); if (BFE_OK != (rc = func (filename, __XBMFProfile__, params, 0))) { if (releaseParams) ReleaseFilterStruct (params); OOLThrow (GetLastErrorMessage (lib, &rc, params), rc); } if (releaseParams) ReleaseFilterStruct (params); lib->UnLoadFunction ((PFNWP) func); } else { if (releaseParams) ReleaseFilterStruct (params); ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow("Could not load function \"OOL_GLIB_EXP\" from library \"OOLGLIB.DLL\".", error); } delete lib; }
void SetClipboardRaw(int format, const byte *data, int length) { GuiLock __; HANDLE handle = NULL; ClipboardLog("* SetClipboardRaw"); if(data) { handle = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, length + 2); byte *ptr; if(!handle) { ClipboardError("GlobalAlloc ERROR"); return; } if(!(ptr = (byte *)GlobalLock(handle))) { ClipboardError("GlobalLock ERROR"); GlobalFree(handle); return; } memcpy(ptr, data, length); ptr[length] = 0; ptr[length + 1] = 0; GlobalUnlock(handle); } if(SetClipboardData(format, handle) != handle) { ClipboardError("SetCliboardData", format); LLOG("SetClipboardData error: " << GetLastErrorMessage()); GlobalFree(handle); } }
bool FileSystem::FlushFileBuffers(int fileDescriptor, CString& errmsg) { #ifdef WIN32 BOOL ok = ::FlushFileBuffers((HANDLE)_get_osfhandle(fileDescriptor)); if (!ok) { errmsg.Reserve(1024 - 1); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, nullptr, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), errmsg, 1024, nullptr); } return ok; #else #ifdef HAVE_FULLFSYNC int ret = fcntl(fileDescriptor, F_FULLFSYNC) == -1 ? 1 : 0; #elif HAVE_FDATASYNC int ret = fdatasync(fileDescriptor); #else int ret = fsync(fileDescriptor); #endif if (ret != 0) { errmsg = GetLastErrorMessage(); } return ret == 0; #endif }
std::string SoapySDR::unloadModule(const std::string &path) { //check if already loaded if (getModuleHandles().count(path) == 0) return path + " never loaded"; //stash the path for registry access getModuleLoading().assign(path); //unload the module void *handle = getModuleHandles()[path]; #ifdef _MSC_VER BOOL success = FreeLibrary((HMODULE)handle); getModuleLoading().clear(); if (not success) return "FreeLibrary() failed: " + GetLastErrorMessage(); #else int status = dlclose(handle); getModuleLoading().clear(); if (status != 0) return "dlclose() failed: " + std::string(dlerror()); #endif //clear the handle getLoaderResults().erase(path); getModuleHandles().erase(path); return ""; }
CWin32Exception::CWin32Exception( const _tstring &where, DWORD error) : CException(where, GetLastErrorMessage(error)), m_error(error) { }
void XBitmap :: SetupExportFilter (const XWindow* owner, const char* filename, XBitmapFilter* params) { CheckFilterProfile (); if (NULL == owner) OOLThrow("invalid parameters", 1); if (NULL == filename) OOLThrow("invalid parameters", 2); if (NULL == params) OOLThrow("invalid parameters", 3); XResourceLibrary* lib = new XResourceLibrary ("OOLGLIB"); XGLibProcSetup* func = (XGLibProcSetup*) lib->LoadFunction ("OOL_GLIB_EXP_SETUP"); DosSleep(100); if (NULL != func) { ULONG rc; params->hab = XApplication :: GetApplication ()->GetAnchorBlock (); if (BFE_OK != (rc = func (owner->GetHandle (), filename, __XBMFProfile__, params))) OOLThrow (GetLastErrorMessage (lib, &rc, params), rc); lib->UnLoadFunction ((PFNWP) func); } else { ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow("Could not load function \"OOL_GLIB_EXP_SETUP\" from library \"OOLGLIB.DLL\".", error); } delete lib; }
/*@ XBitmap::Load(const char* filename, XBitmapFilter * params, BOOL releaseParams) @group loading a bitmap @remarks Load a bitmap from a file. <P><I>If this method is used, GBM.DLL and OLLGLIB.DLL must be in the LIBPATH.</I> <P>Due a bug (?) in OS/2-GPI you should specify params->cBitCount = BFP_BPP_TRUECOLOR if you want to modify or resave the bitmap. @parameters <t 'ø' c=2> øchar * fileName øfilename of the file to load øXBitmapFilter * params øfiletype specific filter informations. An initialized structure has to be created by XBitmap :: GetImportFilterStruct () or XGLibFileDialog. (default is NULL) øBOOL releaseParams øfilter informations will be released after usages <\t> @exceptions If the method fails to create a new bitmap an exception of the type XException is thrown. */ void XBitmap :: Load (const char* filename, XBitmapFilter* params, BOOL releaseParams) { if (hbm) GpiDeleteBitmap(hbm); hbm = NULLHANDLE; XResourceLibrary* lib = new XResourceLibrary ("OOLGLIB"); XGLibProcIO* func = (XGLibProcIO*) lib->LoadFunction ("OOL_GLIB_IMP"); DosSleep(100); if (NULL != func) { if (owner) hps = WinGetPS (owner->GetHandle()); ULONG rc; if (NULL == params) params = GetImportFilterStruct (filename); params->hps = hps; params->hbm = hbm; params->hab = XApplication :: GetApplication ()->GetAnchorBlock (); if (BFE_OK != (rc = func (filename, __XBMFProfile__, params, 0))) { if (releaseParams) ReleaseFilterStruct (params); OOLThrow (GetLastErrorMessage (lib, &rc, params), rc); } hbm = params->hbm; if (releaseParams) ReleaseFilterStruct (params); lib->UnLoadFunction ((PFNWP) func); } else { if (releaseParams) ReleaseFilterStruct (params); ULONG error = WinGetLastError (XApplication :: GetApplication ()->GetAnchorBlock ()); OOLThrow("Could not load function \"OOL_GLIB_IMP\" from library \"OOLGLIB.DLL\".", error); } delete lib; XSize s; GetDimensions(&s); width = cx = s.GetWidth(); height = cy = s.GetHeight(); }
int runDaemon() { #ifdef WIN32 SERVICE_TABLE_ENTRY serviceTable[] { { "Payment Gate", serviceMain }, { NULL, NULL } }; Logging::LoggerRef logRef(ppg->getLogger(), "RunService"); if (StartServiceCtrlDispatcher(serviceTable) != TRUE) { logRef(Logging::FATAL, Logging::BRIGHT_RED) << "Couldn't start service: " << GetLastErrorMessage(GetLastError()); return 1; } logRef(Logging::INFO) << "Service stopped"; return 0; #else int daemonResult = daemonize(); if (daemonResult > 0) { //parent return 0; } else if (daemonResult < 0) { //error occurred return 1; } ppg->run(); return 0; #endif }
void CSocketClient::Write( const char *pData, size_t dataLength ) { if ( INVALID_SOCKET != m_connectSocket && dataLength > 0 && pData ) { CIOBuffer *pBuffer = Allocate(); /* * Call to unqualified virtual function */ PreWrite( pBuffer, pData, dataLength ); pBuffer->AddData( pData, dataLength ); /* * Begin to send data */ pBuffer->SetupWrite(); DWORD dwFlags = 0; DWORD dwSendNumBytes = 0; if ( SOCKET_ERROR == ::WSASend( m_connectSocket, pBuffer->GetWSABUF(), 1, &dwSendNumBytes, dwFlags, pBuffer, NULL) ) { DWORD lastError = ::WSAGetLastError(); if ( ERROR_IO_PENDING != lastError ) { Output( _T("CSocketClient::Write() - WSASend: ") + GetLastErrorMessage( lastError ) ); if ( lastError == WSAECONNABORTED || lastError == WSAECONNRESET || lastError == WSAEDISCON) { StopConnections(); } } } if ( pBuffer->GetUsed() != pBuffer->GetWSABUF()->len ) { /* * Call to unqualified virtual function */ //OnError(_T("CSocketClient::WriteCompleted - Socket write where not all data was written")); } pBuffer->Release(); } }
void ClipboardError(const char *txt) { if(!DebugClipboard()) return; String s = txt; s << "\n" << GetLastErrorMessage(); MessageBox(::GetActiveWindow(), s, "Clipboard error", MB_ICONSTOP | MB_OK | MB_APPLMODAL); ClipboardLog(String().Cat() << s << " ERROR"); }
void ClipboardError(const char *txt) { #ifdef flagCHECKCLIPBOARD String s = txt; s << "\n" << GetLastErrorMessage(); MessageBox(::GetActiveWindow(), s, "Clipboard error", MB_ICONSTOP | MB_OK | MB_APPLMODAL); ClipboardLog(String().Cat() << s << " ERROR"); #endif }
void FileStream::Close() { if(!IsOpen()) return; Flush(); LLOG("CLOSE " << handle); if(!CloseHandle(handle)) { LLOG("CLOSE ERROR"); LDUMP(GetLastErrorMessage()); SetLastError(); } handle = INVALID_HANDLE_VALUE; }
MMRESULT Open(unsigned int deviceId) { // open midi input MMRESULT mmResult; mmResult = midiInOpen(&handle, deviceId, DWORD_PTR(Proc), NULL, CALLBACK_FUNCTION); if (mmResult) { char buf[256]; GetLastErrorMessage(buf, 256); DebugPrint("Error opening MIDI input: %s", buf); return mmResult; } // prepare input buffer header.lpData = sysexbuffer; header.dwBufferLength = sizeof(sysexbuffer); header.dwFlags = 0; mmResult = midiInPrepareHeader(handle, &header, sizeof(MIDIHDR)); if (mmResult) { char buf[256]; GetLastErrorMessage(buf, 256); DebugPrint("Error preparing MIDI header: %s", buf); return mmResult; } // queue input buffer mmResult = midiInAddBuffer(handle, &header, sizeof(MIDIHDR)); if (mmResult) { char buf[256]; GetLastErrorMessage(buf, 256); DebugPrint("Error adding MIDI input buffer: %s", buf); return mmResult; } return mmResult; }
void CSocketServer::Socket::Shutdown( int how /* = SD_BOTH */ ) { Output( _T("CSocketServer::Socket::Shutdown() ") + ToString( how ) ); if ( INVALID_SOCKET != m_socket ) { if ( 0 != ::shutdown( m_socket, how ) ) { m_server.OnError( _T("CSocketServer::Server::Shutdown() - ") + GetLastErrorMessage( ::WSAGetLastError() ) ); } Output( _T("shutdown initiated") ); } }
bool FileSystem::DeleteDirectoryWithContent(const char* dirFilename, CString& errmsg) { errmsg.Clear(); bool del = false; bool ok = true; { DirBrowser dir(dirFilename); while (const char* filename = dir.Next()) { BString<1024> fullFilename("%s%c%s", dirFilename, PATH_SEPARATOR, filename); if (FileSystem::DirectoryExists(fullFilename)) { del = DeleteDirectoryWithContent(fullFilename, errmsg); } else { del = DeleteFile(fullFilename); } ok &= del; if (!del && errmsg.Empty()) { errmsg.Format("could not delete %s: %s", *fullFilename, *GetLastErrorMessage()); } } } // make sure "DirBrowser dir" is destroyed (and has closed its handle) before we trying to delete the directory del = RemoveDirectory(dirFilename); ok &= del; if (!del && errmsg.Empty()) { errmsg = GetLastErrorMessage(); } return ok; }
bool InstallService(String name, String display_name, String& cmdline, String& status) { ServiceHandle scm = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(!scm) { status = "Cannot open service manager"; return false; } ServiceHandle me = OpenService(scm, name, SC_MANAGER_ALL_ACCESS); if(me) { SERVICE_STATUS srvstat; if(ControlService(me, SERVICE_CONTROL_STOP, &srvstat)) { int start = msecs(); while(QueryServiceStatus(me, &srvstat) && srvstat.dwCurrentState != SERVICE_STOPPED && msecs(start) < 10000) Sleep(100); } if(!DeleteService(me)) { status = NFormat("Error deleting existing service: %s", GetLastErrorMessage()); return false; } me.Close(); } me = CreateService(scm, name, display_name, SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, cmdline, 0, 0, 0, 0, 0); if(!me) { status = NFormat("Error creating service: %s", GetLastErrorMessage()); return false; } if(!StartService(me, 0, NULL)) { status = NFormat("Error starting service: %s", GetLastErrorMessage()); return false; } return true; }
UINT CFileDiffDlg::DiffThread() { bool bSuccess = true; RefreshCursor(); m_cFileList.ShowText(CString(MAKEINTRESOURCE(IDS_FILEDIFF_WAIT))); m_arFileList.clear(); if (m_bDoPegDiff) { bSuccess = DiffSummarizePeg(m_path1, m_peg, m_rev1, m_rev2, m_depth, m_bIgnoreancestry); } else { bSuccess = DiffSummarize(m_path1, m_rev1, m_path2, m_rev2, m_depth, m_bIgnoreancestry); } if (!bSuccess) { m_cFileList.ShowText(GetLastErrorMessage()); InterlockedExchange(&m_bThreadRunning, FALSE); return 0; } CString sFilterText; m_cFilter.GetWindowText(sFilterText); m_cFileList.SetRedraw(false); Filter(sFilterText); if (! m_arFileList.empty()) { // Highlight first entry in file list m_cFileList.SetSelectionMark(0); m_cFileList.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED); } CRect rect; m_cFileList.GetClientRect(&rect); m_cFileList.SetColumnWidth(0, rect.Width()-100); m_cFileList.SetColumnWidth(1, 100); m_cFileList.ClearText(); m_cFileList.SetRedraw(true); InterlockedExchange(&m_bThreadRunning, FALSE); InvalidateRect(NULL); RefreshCursor(); return 0; }
const LPTSTR GetLastErrorMessage(DWORD last_error) { static TCHAR errmsg[512]; if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, last_error, 0, errmsg, 511, NULL)) { /* if we fail, call ourself to find out why and return that error */ return (GetLastErrorMessage(GetLastError())); } return(errmsg); }
void CSocketServer::Socket::Close() { CCriticalSection::Owner lock( m_server.m_listManipulationSection ); if ( INVALID_SOCKET != m_socket ) { if ( 0 != ::closesocket( m_socket ) ) { m_server.OnError(_T("CSocketServer::Socket::Close() - closesocket - ") + GetLastErrorMessage( ::WSAGetLastError() ) ); } m_socket = INVALID_SOCKET; m_server.OnConnectionClosed( this ); Release(); } }
bool MSQLite::Create(const char *dbname) { Destroy(); // ref http://www.sqlite.org/inmemorydb.html if(dbname==NULL || *dbname==0 ) { dbname=":memory:"; } if(sqlite3_open(dbname,&mDatabase)!=SQLITE_OK) { const char *error=GetLastErrorMessage(); if(error==NULL) { error="Unknown Error"; }; Destroy(); return false; } return true; }
void CSocketClient::OnRead( CIOBuffer *pBuffer ) { /* * Determine the amount of data that can be read atomically from socket s * * ::WSAIoctl( s, FIONREAD, ... */ DWORD dwNumBytes = 0; DWORD dwFlags = 0; pBuffer->SetupRead(); if ( SOCKET_ERROR == ::WSARecv( m_connectSocket, pBuffer->GetWSABUF(), 1, &dwNumBytes, &dwFlags, pBuffer, NULL ) ) { DWORD lastError = ::WSAGetLastError(); if ( ERROR_IO_PENDING != lastError ) { Output( _T("CSocketClient::OnRead() - WSARecv: ") + GetLastErrorMessage( lastError ) ); if ( lastError == WSAECONNABORTED || lastError == WSAECONNRESET || lastError == WSAEDISCON) { StopConnections(); } } } else { pBuffer->Use( dwNumBytes ); ReadCompleted( pBuffer ); } }