void Platform_Win32_Sound_SoundStream_DSound::ClearBuffer(int bufferOffset, int bytesToClear) { if (!soundBuffer_) { } // Check the range of the bytesToClear parameter ErrMsg((bufferOffset+bytesToClear)<=size_,"Sound buffer out of range\n"); // Obtain memory address of write block. This will be in two parts // if the block wraps around. LPVOID lpvPtr1; DWORD dwBytes1; LPVOID lpvPtr2; DWORD dwBytes2; HRESULT hr = soundBuffer_->Lock(bufferOffset, bytesToClear, &lpvPtr1, &dwBytes1, &lpvPtr2, &dwBytes2, 0); // If DSERR_BUFFERLOST is returned, restore and retry lock. if (hr==DSERR_BUFFERLOST) { soundBuffer_->Restore(); hr = soundBuffer_->Lock(bufferOffset, bytesToClear, &lpvPtr1, &dwBytes1, &lpvPtr2, &dwBytes2, 0); } ErrMsg(SUCCEEDED(hr),"Couldn't lock sound buffer\n"); // Write to pointers. FillMemory(lpvPtr1, dwBytes1,0); if(lpvPtr2) { FillMemory(lpvPtr2, dwBytes2, 0); } // Release the data back to DirectSound. hr=soundBuffer_->Unlock(lpvPtr1, dwBytes1, lpvPtr2, dwBytes2); ErrMsg(SUCCEEDED(hr),"Couldn't unlock sound buffer\n"); }
void CNetworkLayerTestDlg::OnBnClickedButtonSend() { TRY_CATCH char buf[MAX_PATH]; int len; strcpy_s( buf, MAX_PATH, "Sending ->" ); m_SendList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); m_SendText.GetWindowText( buf, MAX_PATH ); m_SendList.AddString( buf ); len = (unsigned int)strlen( buf ); if ( BST_CHECKED == m_AddBreakLine.GetCheck() ) { buf[len] = '\r'; len++; buf[len] = '\n'; len++; } Stream.Send( buf, len ); FillMemory( buf, MAX_PATH, 0 ); strcpy_s( buf, MAX_PATH, "->Sent" ); m_SendList.AddString( buf ); m_SendText.SetWindowText( "" ); CATCH_LOG("CNetworkLayerTestDlg::OnBnClickedButtonSend") }
VOID CPokemonCodec::GetCatcherName(BYTE bCode[POKEMON_TRAINER_NAME_SIZE]) { if(m_pPokemon == NULL) return; if(m_pPokemon->Header.bNickNameLanguage == 0x00) { FillMemory(bCode, POKEMON_TRAINER_NAME_SIZE, 0xFF); } else { switch(m_dwLang) { case lang_jp: // jp version MoveMemory(bCode, m_pPokemon->Header.bCatcherName, 5); bCode[5] = 0xFF; FillMemory(bCode + 6, POKEMON_TRAINER_NAME_SIZE - 6, 0x00); break; default: // en version MoveMemory(bCode, m_pPokemon->Header.bCatcherName, POKEMON_TRAINER_NAME_SIZE); break; } } }
bool CSerialPort::Open( LPCTSTR lpszComPort,LPCTSTR lpszConString ,int delay_us) { CString sPort; sPort.Format(_T("\\\\.\\%s"), lpszComPort); m_hComm = CreateFile(sPort, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING,0,0); if (m_hComm == INVALID_HANDLE_VALUE) { CString str; GetErrorStr(str); LogMessage(str); return false; } Delay_US = delay_us; // Set Com Settings DCB dcb; FillMemory(&dcb, sizeof(dcb), 0); dcb.DCBlength = sizeof(dcb); if (!BuildCommDCB(lpszConString, &dcb)) { // Couldn't build the DCB. Usually a problem // with the communications specification string. CString str; GetErrorStr(str); LogMessage(str); LogMessage("Seri Port Hatasý. (BuildComDCB)"); CloseHandle(m_hComm); m_hComm = NULL; return false; } if (!SetCommState(m_hComm, &dcb)) { CString str; GetErrorStr(str); LogMessage(str); LogMessage("Seri Port Hatasý. (SetCommState)"); CloseHandle(m_hComm); m_hComm = NULL; return false; } COMMTIMEOUTS cm; FillMemory(&cm, sizeof(cm), 0); cm.ReadIntervalTimeout = 10; cm.ReadTotalTimeoutConstant = 10; if(!SetCommTimeouts(m_hComm,&cm)) { CString str; GetErrorStr(str); LogMessage(str); LogMessage("Seri Port Hatasý. (SetCommTimeouts)"); CloseHandle(m_hComm); m_hComm = NULL; return false; } LogMessage("Seri port açýldý."); return true; }
void Test_DIBBrush(void) { struct { BITMAPINFOHEADER bmiHeader; WORD wColors[4]; BYTE jBuffer[16]; } PackedDIB = { {sizeof(BITMAPINFOHEADER), 4, 4, 1, 8, BI_RGB, 0, 1, 1, 4, 0}, {1, 7, 3, 1}, {0,1,2,3, 1,2,3,0, 2,3,0,1, 3,0,1,2}, }; LOGBRUSH logbrush; HBRUSH hBrush; /* Create a DIB brush */ hBrush = CreateDIBPatternBrushPt(&PackedDIB, DIB_PAL_COLORS); ok(hBrush != 0, "CreateSolidBrush failed, skipping tests.\n"); if (!hBrush) return; FillMemory(&logbrush, sizeof(LOGBRUSH), 0x77); SetLastError(ERROR_SUCCESS); ok_long(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush), sizeof(LOGBRUSH)); ok_long(logbrush.lbStyle, BS_DIBPATTERN); ok_long(logbrush.lbColor, 0); ok_long(logbrush.lbHatch, (ULONG_PTR)&PackedDIB); ok_err(ERROR_SUCCESS); DeleteObject(hBrush); /* Create a DIB brush with undocumented iUsage 2 */ hBrush = CreateDIBPatternBrushPt(&PackedDIB, 2); ok(hBrush != 0, "CreateSolidBrush failed, skipping tests.\n"); if (!hBrush) return; FillMemory(&logbrush, sizeof(LOGBRUSH), 0x77); SetLastError(ERROR_SUCCESS); ok_long(GetObject(hBrush, sizeof(LOGBRUSH), &logbrush), sizeof(LOGBRUSH)); ok_long(logbrush.lbStyle, BS_DIBPATTERN); ok_long(logbrush.lbColor, 0); ok_long(logbrush.lbHatch, (ULONG_PTR)&PackedDIB); ok_err(ERROR_SUCCESS); DeleteObject(hBrush); }
void CStreamFactoryDlg::ReadFromStream() { TRY_CATCH char buf[MAX_PATH]; bool rec = m_stream->HasInData();// > 0; int count = 0; char* pbuf = buf; if ( rec ) { strcpy_s( buf, MAX_PATH, "Receiving ->" ); m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); } while ( m_stream->HasInData() ) { try { m_stream->Receive( pbuf, 1 ); } catch(CStreamException &e) { MLog_Exception(CExceptionBase(e,PREPARE_EXEPTION_MESSAGE(_T(__FUNCTION__)))); OnBnClickedDisconnectButton(); ///TODO: send message return; } pbuf++; count++; if ( MAX_PATH - 1 == count ) { m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); pbuf = buf; count = 0; } } if ( rec ) { if ( count ) m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); strcpy_s( buf, MAX_PATH, "->Received" ); m_ReceiveList.AddString( buf ); } CATCH_LOG("CStreamFactoryDlg::ReadFromStream") }
static HRESULT DSOUND_PrimaryOpen(DirectSoundDevice *device) { DWORD buflen; LPBYTE newbuf; TRACE("(%p)\n", device); /* on original windows, the buffer it set to a fixed size, no matter what the settings are. on windows this size is always fixed (tested on win-xp) */ if (!device->buflen) device->buflen = ds_hel_buflen; buflen = device->buflen; buflen -= buflen % device->pwfx->nBlockAlign; device->buflen = buflen; device->mix_buffer_len = DSOUND_bufpos_to_mixpos(device, device->buflen); device->mix_buffer = HeapAlloc(GetProcessHeap(), 0, device->mix_buffer_len); if (!device->mix_buffer) return DSERR_OUTOFMEMORY; if (device->state == STATE_PLAYING) device->state = STATE_STARTING; else if (device->state == STATE_STOPPING) device->state = STATE_STOPPED; TRACE("desired buflen=%d, old buffer=%p\n", buflen, device->buffer); /* reallocate emulated primary buffer */ if (device->buffer) newbuf = HeapReAlloc(GetProcessHeap(),0,device->buffer, buflen); else newbuf = HeapAlloc(GetProcessHeap(),0, buflen); if (!newbuf) { ERR("failed to allocate primary buffer\n"); return DSERR_OUTOFMEMORY; /* but the old buffer might still exist and must be re-prepared */ } DSOUND_RecalcPrimary(device); device->buffer = newbuf; TRACE("fraglen=%d\n", device->fraglen); device->mixfunction = mixfunctions[device->pwfx->wBitsPerSample/8 - 1]; device->normfunction = normfunctions[device->pwfx->wBitsPerSample/8 - 1]; FillMemory(device->buffer, device->buflen, (device->pwfx->wBitsPerSample == 8) ? 128 : 0); FillMemory(device->mix_buffer, device->mix_buffer_len, 0); device->last_pos_bytes = device->pwplay = device->pwqueue = device->playpos = device->mixpos = 0; return DS_OK; }
void CNetworkLayerTestDlg::ReadFromStream() { TRY_CATCH char buf[MAX_PATH]; bool rec = Stream.HasInData();// > 0; int count = 0; char* pbuf = buf; if ( rec ) { strcpy_s( buf, MAX_PATH, "Receiving ->" ); m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); } while ( Stream.HasInData() ) { try { Stream.Receive( pbuf, 1 ); } catch(CStreamException &e) { MLog_Exception(CExceptionBase(e,PREPARE_EXEPTION_MESSAGE(_T(__FUNCTION__)))); OnDisconnected(NULL); return; } pbuf++; count++; if ( MAX_PATH - 1 == count ) { m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); pbuf = buf; count = 0; } } if ( rec ) { if ( count ) m_ReceiveList.AddString( buf ); FillMemory( buf, MAX_PATH, 0 ); strcpy_s( buf, MAX_PATH, "->Received" ); m_ReceiveList.AddString( buf ); } CATCH_LOG("CNetworkLayerTestDlg::ReadFromStream") }
static REG8 hdd_format(SXSIDEV sxsi, long pos) { FILEH fh; long r; UINT16 i; UINT8 work[256]; UINT size; UINT wsize; if (sxsi_prepare(sxsi) != SUCCESS) { return(0x60); } if ((pos < 0) || (pos >= sxsi->totals)) { return(0x40); } pos = pos * sxsi->size + sxsi->headersize; fh = (FILEH)sxsi->hdl; r = file_seek(fh, pos, FSEEK_SET); if (pos != r) { return(0xd0); } FillMemory(work, sizeof(work), 0xe5); for (i=0; i<sxsi->sectors; i++) { size = sxsi->size; while(size) { wsize = min(size, sizeof(work)); size -= wsize; CPU_REMCLOCK -= wsize; if (file_write(fh, work, wsize) != wsize) { return(0x70); } } } return(0x00); }
static VOID InitFirstPage() { PVOID BaseAddress; ULONG RegionSize; NTSTATUS ReturnCode; FARPROC NtAllocateVirtualMemory; NtAllocateVirtualMemory = GetProcAddress(GetModuleHandle("NTDLL.DLL"), "NtAllocateVirtualMemory"); fprintf(stderr, "NtAllocateVirtualMemory@%p\n", NtAllocateVirtualMemory); RegionSize = 0xf000; BaseAddress = (PVOID) 0x00000001; ReturnCode = NtAllocateVirtualMemory(GetCurrentProcess(), &BaseAddress, 0, &RegionSize, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); if (ReturnCode != 0) { fprintf(stderr, "NtAllocateVirtualMemory() failed to map first page, %#X\n", ReturnCode); fflush(stderr); ExitProcess(1); } fprintf(stderr, "BaseAddress: %p, RegionSize: %#x\n", BaseAddress, RegionSize), fflush(stderr); FillMemory(BaseAddress, RegionSize, 0x41); return; }
void Test_Pen(void) { LOGPEN logpen; HPEN hPen; FillMemory(&logpen, sizeof(LOGPEN), 0x77); hPen = CreatePen(PS_SOLID, 3, RGB(4,5,6)); ok(hPen != 0, "CreatePen failed, skipping tests.\n"); if (!hPen) return; SetLastError(ERROR_SUCCESS); ok(GetObjectA((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN), "\n"); ok(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, 0, NULL) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, sizeof(BITMAP), NULL) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, 0, NULL) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, 5, NULL) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, -5, NULL) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, sizeof(LOGPEN), &logpen) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, sizeof(LOGPEN)-1, &logpen) == 0, "\n"); ok(GetObject(hPen, sizeof(LOGPEN)+2, &logpen) == sizeof(LOGPEN), "\n"); ok(GetObject(hPen, 0, &logpen) == 0, "\n"); ok(GetObject(hPen, -5, &logpen) == sizeof(LOGPEN), "\n"); //ok(GetLastError() == ERROR_SUCCESS, "\n"); fails on win7 /* test if the fields are filled correctly */ ok(logpen.lopnStyle == PS_SOLID, "\n"); ok(GetObjectW((HANDLE)GDI_OBJECT_TYPE_PEN, sizeof(LOGPEN), &logpen) == 0, "\n"); ok(GetLastError() == ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError()); DeleteObject(hPen); }
unsigned char *SampleImages( unsigned long nSizeX, unsigned long nSizeY ) { unsigned long x, y; unsigned char *image; image = (unsigned char*) malloc( nSizeX*nSizeY*3 ); if (NULL != image) { // Picture 0: horizontal bars for (y=0; y<nSizeY; y++) FillMemory( image + 0*nSizeY*nSizeX + y*nSizeX, // row start address nSizeX, // row size in bytes (y&64)? 0 : 128 ); // image data: either 0 or 128 // Picture 1: checkered pattern for (y=0; y<nSizeY; y++) for (x=0; x<nSizeX; x++) image[1*nSizeY*nSizeX + y*nSizeX + x] = (unsigned char) ((x^y)& 32)? 0 : 128; // Picture 2: vertical bars for (y=0; y<nSizeY; y++) for (x=0; x<nSizeX; x++) image[2*nSizeY*nSizeX + y*nSizeX + x] = (unsigned char) (x&256)? 0 : 128; } return image; }
int GetStatsuBarProtoRect(HWND hwnd,char *szProto,RECT *rc) { int nParts,nPanel; ProtocolData *PD; int startoffset=DBGetContactSettingDword(NULL,"StatusBar","FirstIconOffset",0); if (!UseOwnerDrawStatusBar) startoffset=0; nParts=SendMessage(hwnd,SB_GETPARTS,0,0); FillMemory(rc,sizeof(RECT),0); for (nPanel=0;nPanel<nParts;nPanel++) { PD=(ProtocolData *)SendMessage(pcli->hwndStatus,SB_GETTEXT,(WPARAM)nPanel,(LPARAM)0); if ( PD == NULL ) return(0); if (!strcmp(szProto,PD->RealName)) { SendMessage(hwnd,SB_GETRECT,(WPARAM)nPanel,(LPARAM)rc); rc->left+=startoffset; rc->right+=startoffset; return(0); } } return (0); }
bool ExistDriver() { LPSTR driverName = "Winvnc video hook driver"; DEVMODE devmode; FillMemory(&devmode, sizeof(DEVMODE), 0); devmode.dmSize = sizeof(DEVMODE); devmode.dmDriverExtra = 0; BOOL change = EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&devmode); devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; BOOL result; DISPLAY_DEVICE dd; ZeroMemory(&dd, sizeof(dd)); dd.cb = sizeof(dd); LPSTR deviceName = NULL; devmode.dmDeviceName[0] = '\0'; INT devNum = 0; pEnumDisplayDevices pd; HMODULE hUser32=LoadLibrary("USER32"); pd = (pEnumDisplayDevices)GetProcAddress( hUser32, "EnumDisplayDevicesA"); while (result = (*pd)(NULL,devNum, &dd,0)) { if (strcmp((const char *)&dd.DeviceString[0], driverName) == 0) break; devNum++; } return result; }
VOID CPokemonCodec::SetNickName(BYTE bCode[POKEMON_NICK_NAME_SIZE]) { if(m_pPokemon == NULL) return; if(m_pPokemon->Header.bNickNameLanguage == 0x00) { if(m_dwLang == lang_jp) m_pPokemon->Header.bNickNameLanguage = 0x01; else m_pPokemon->Header.bNickNameLanguage = 0x02; } switch(m_pPokemon->Header.bNickNameLanguage) { case 0x01: // jp version MoveMemory(m_pPokemon->Header.bNickName, bCode, 5); m_pPokemon->Header.bNickName[5] = 0xFF; FillMemory(m_pPokemon->Header.bNickName + 6, POKEMON_NICK_NAME_SIZE - 6, 0x00); break; default: // en version MoveMemory(m_pPokemon->Header.bNickName, bCode, POKEMON_NICK_NAME_SIZE); break; } }
void StreamSound::uploadSound(BYTE* buffer, DWORD size) { DWORD bytesRestToUpload = size; DWORD uploadOffset = 0; DWORD oggBytes; while( bytesRestToUpload > 0 ) { oggBytes = _oggFile->readBlock( buffer + uploadOffset, bytesRestToUpload ); bytesRestToUpload -= oggBytes; uploadOffset += oggBytes; if( bytesRestToUpload > 0 ) { if( _isLooping ) { _oggFile->reset(); } else { FillMemory( buffer + uploadOffset, bytesRestToUpload, 0 ); bytesRestToUpload = 0; } } } _playProgress += size; }
void CrstBase::DebugDestroy() { FillMemory(&m_criticalsection, sizeof(m_criticalsection), 0xcc); m_holderthreadid = 0xcccccccc; m_entercount = 0xcccccccc; if (this == &m_DummyHeadCrst) { // m_DummyHeadCrst dies when global destructors are called. // It should be the last one to go. for (CrstBase *pcrst = m_pDummyHeadCrst->m_next; pcrst != m_pDummyHeadCrst; pcrst = pcrst->m_next) { // TEXT and not L"..." as the JIT uses this file and it is still ASCII DbgWriteEx(TEXT("WARNING: Crst \"%hs\" at 0x%lx was leaked.\n"), pcrst->m_tag, (size_t)pcrst); } } else { if(m_pDummyHeadCrst) { // Unlink from global crst list. LOCKCOUNTINCL("DebugDestroy in crst.cpp"); \ EnterCriticalSection(&(m_pDummyHeadCrst->m_criticalsection)); m_next->m_prev = m_prev; m_prev->m_next = m_next; m_next = (CrstBase*)POISONC; m_prev = (CrstBase*)POISONC; LeaveCriticalSection(&(m_pDummyHeadCrst->m_criticalsection)); LOCKCOUNTDECL("DebugDestroy in crst.cpp"); \ } } }
int __rcx_open_setSerialPortParameters (Port *port) { DCB dcb; FillMemory(&dcb, sizeof(dcb), 0); if (!GetCommState(port->fileHandle, &dcb)) { /* Get current DCB */ __rcx_perror("GetCommState"); return 0; } dcb.ByteSize = 8; dcb.Parity = (port->fast ? 0 : 1); /* 0-4 = no, odd, even, mark, space */ dcb.StopBits = 0; /* 0,1,2 = 1, 1.5, 2 */ dcb.fBinary = TRUE; dcb.fParity = (port->fast ? FALSE : TRUE); dcb.fAbortOnError = FALSE; dcb.BaudRate = (port->fast ? CBR_4800 : CBR_2400); /* Update DCB rate. */ if (!SetCommState(port->fileHandle, &dcb)) { /* Error in SetCommState. Possibly a problem with the communications port handle or a problem with the DCB structure itself */ __rcx_perror("SetCommState"); return 0; } return 1; }
// Fill delay buffer with silence. (definition of 'silence' depends on the format) void CDelay::FillBufferWithSilence() { if (Is8Bit()) FillMemory(m_pbDelayBuffer, m_cbDelayBuffer, 0x80); else ZeroMemory(m_pbDelayBuffer, m_cbDelayBuffer); }
ULONG Compress(PVOID pvOutput, ULONG OutBufferSize, PVOID pvInput, ULONG InputSize) { LONG Result; ucl_compress_config_t UclConfig; struct { ULONG Magic; ULONG CompressedSize; } *pHeader; FillMemory(&UclConfig, sizeof(UclConfig), -1); UclConfig.bb_endian = 0; UclConfig.bb_size = 32; UclConfig.max_offset = 0x3FFFFF; *(PULONG_PTR)&pHeader = (ULONG_PTR)pvOutput; pHeader->CompressedSize = OutBufferSize - sizeof(*pHeader); Result = ucl_nrv2e_99_compress( (PBYTE)pvInput, InputSize, (PBYTE)(pHeader + 1), (PUINT)&pHeader->CompressedSize, NULL, 10, &UclConfig, NULL ); pHeader->Magic = UCL_COMPRESS_MAGIC; return pHeader->CompressedSize + sizeof(*pHeader); }
ULONG Compress(PVOID pvOutput, ULONG OutBufferSize, PVOID pvInput, ULONG InputSize) { LONG Result; ucl_compress_config_t UclConfig; struct { ULONG Magic; ULONG CompressedSize; } *pHeader; FillMemory(&UclConfig, sizeof(UclConfig), (BYTE)-1); UclConfig.bb_endian = 0; UclConfig.bb_size = 32; UclConfig.max_offset = 0x3FFFFF; *(PULONG_PTR)&pHeader = (ULONG_PTR)pvOutput; pHeader->CompressedSize = OutBufferSize - sizeof(*pHeader); //PVOID WorkSpace; //ULONG CompressBufferWorkSpaceSize, CompressFragmentWorkSpaceSize; //RtlGetCompressionWorkSpaceSize(3, &CompressBufferWorkSpaceSize, &CompressFragmentWorkSpaceSize); //WorkSpace = AllocateMemoryP(CompressBufferWorkSpaceSize + CompressFragmentWorkSpaceSize); //RtlCompressBuffer(COMPRESSION_FORMAT_DEFAULT, pvInput, InputSize, (PUCHAR)(pHeader + 1), OutBufferSize, 0, &pHeader->CompressedSize, WorkSpace); Result = UCL_NRV2E_Compress(pvInput, InputSize, pHeader + 1, &pHeader->CompressedSize); pHeader->Magic = UCL_COMPRESS_MAGIC; return pHeader->CompressedSize + sizeof(*pHeader); }
BOOL DetectVirtualMonitor(BOOL log) { INT devNum = 0; DISPLAY_DEVICE displayDevice; BOOL result; BOOL bFound = FALSE; FillMemory(&displayDevice, sizeof(DISPLAY_DEVICE), 0); displayDevice.cb = sizeof(DISPLAY_DEVICE); // First enumerate for Primary display device: while ((result = EnumDisplayDevices(NULL, devNum, &displayDevice, 0))) { if (log) { logInfo("%s, %s %s \n", &displayDevice.DeviceString[0], &displayDevice.DeviceName[0], &displayDevice.DeviceID[0]/*, &displayDevice.DeviceKey[0]*/); } if (strcmp(&displayDevice.DeviceID[0], DRIVER_NAME) == 0) { bFound = TRUE; if (!log) break; } devNum++; } return bFound; }
int acl_socket_init(void) { const char *myname = "acl_socket_init"; WORD version = 0; WSADATA data; char ebuf[256]; if (__socket_inited) { acl_msg_warn("%s(%d): has been inited", myname, __LINE__); return 0; } __socket_inited = 1; FillMemory(&data, sizeof(WSADATA), 0); version = MAKEWORD(2, 0); if (WSAStartup(version, &data) != 0) { acl_msg_error("%s(%d): WSAStartup error(%s)", myname, __LINE__, acl_last_strerror(ebuf, sizeof(ebuf))); return -1; } if (LOBYTE(data.wVersion) != 2 || HIBYTE(data.wVersion) != 0) { WSACleanup(); acl_msg_error("%s(%d): LOBYTE(data.wVersion) = %d" ", HIBYTE(data.wVersion) = %d", myname, __LINE__, LOBYTE(data.wVersion), HIBYTE(data.wVersion)); return -1; } __socket_ended = 0; return (0); }
VOID CPokemonCodec::SetNickName(LPCTSTR szName) { if(m_pPokemon == NULL) return; if(m_pPokemon->Header.bNickNameLanguage == 0x00) { if(m_dwLang == lang_jp) m_pPokemon->Header.bNickNameLanguage = 0x01; else m_pPokemon->Header.bNickNameLanguage = 0x02; } switch(m_pPokemon->Header.bNickNameLanguage) { case 0x01: // jp version StringToCode(szName, m_pPokemon->Header.bNickName, 5, 0xFF, 0xFF, lang_jp); m_pPokemon->Header.bNickName[5] = 0xFF; FillMemory(m_pPokemon->Header.bNickName + 6, POKEMON_NICK_NAME_SIZE - 6, 0x00); break; default: // en version StringToCode(szName, m_pPokemon->Header.bNickName, POKEMON_NICK_NAME_SIZE, 0xFF, 0xFF, lang_en); break; } }
bool Serial::open(OpenMode mode) { if (isOpen()) { setErrorString(tr("Device (%0) already open").arg(mPort)); return false; } DWORD dwBaudRate; switch (mBaudRate) { case 300: dwBaudRate = CBR_300; break; case 1200: dwBaudRate = CBR_1200; break; case 2400: dwBaudRate = CBR_2400; break; case 4800: dwBaudRate = CBR_4800; break; case 9600: dwBaudRate = CBR_9600; break; case 19200: dwBaudRate = CBR_19200; break; case 38400: dwBaudRate = CBR_38400; break; case 57600: dwBaudRate = CBR_57600; break; case 115200: dwBaudRate = CBR_115200; break; default: setErrorString(tr("Unknown baud rate %0").arg(mBaudRate)); return false; } DWORD dwMode = 0; if (mode & ReadOnly) dwMode |= GENERIC_READ; if (mode & WriteOnly) dwMode |= GENERIC_READ; mSerial = ::CreateFile(mPort.toLocal8Bit().constData(), dwMode, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if (mSerial == INVALID_SERIAL_DESCRIPTOR) goto error; DCB dcb; FillMemory(&dcb, sizeof(dcb), 0); if (! GetCommState(mSerial, &dcb)) goto error; dcb.BaudRate = dwBaudRate; if (! SetCommState(mSerial, &dcb)) goto error; setOpenMode(mode); return true; error: DWORD dwErr = ::GetLastError(); LPSTR lpMsg; ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR) &lpMsg, 0, NULL); setErrorString(lpMsg); ::LocalFree(lpMsg); if (mSerial != INVALID_SERIAL_DESCRIPTOR) { ::CloseHandle(mSerial); mSerial = INVALID_SERIAL_DESCRIPTOR; } return false; }
int RankingSave(void) { int i, temp, temp2[3]; FillMemory(&saveBuf, 50000 * 4, 0); // ファイルフォーマット (4byte単位) // 0〜 3 ヘッダ // 300〜44299 リプレイデータ saveBuf[0] = 0x4F424548; saveBuf[1] = 0x20534952; saveBuf[2] = 0x48474948; saveBuf[3] = 0x32764353; for(i = 0; i < 40; i++) { temp = (i + 1) << 3; saveBuf[temp + 0] = rksc[i]; saveBuf[temp + 1] = rkbl[i]; saveBuf[temp + 2] = rklv[i]; saveBuf[temp + 3] = rktime[i]; StrCpy(&temp2, string[30 + i]); saveBuf[temp + 4] = temp2[0]; saveBuf[temp + 5] = rkfl[i]; } SaveFile("config/data/RANKING.SAV", &saveBuf, 1312); return (0); }
int RankingLoad(void) { int i, temp, temp2[3]; FillMemory(&saveBuf, 50000 * 4, 0); LoadFile("config/data/RANKING.SAV", &saveBuf, 16); if(saveBuf[0] != 0x4F424548) return (1); if(saveBuf[1] != 0x20534952) return (1); if(saveBuf[2] != 0x48474948) return (1); if(saveBuf[3] == 0x31764353) return (2); else if(saveBuf[3] != 0x32764353) return (1); LoadFile("config/data/RANKING.SAV", &saveBuf, 1312); for(i = 0; i < 40; i++) { temp = (i + 1) << 3; rksc[i] = saveBuf[temp + 0]; rkbl[i] = saveBuf[temp + 1]; rklv[i] = saveBuf[temp + 2]; rktime[i] = saveBuf[temp + 3]; temp2[0] = saveBuf[temp + 4]; StrCpy(string[30 + i], &temp2); rkfl[i] = saveBuf[temp + 5]; } return (0); }
int _CRTAPI1 main( int argc, char *argv[], char *envp[] ) { HANDLE hModule; LPVOID BaseAddress; LPVOID MaxAddress; PIMAGE_NT_HEADERS NtHeaders; GetSystemInfo(&SystemInfo); hModule = LoadLibrary("kernel32.dll"); BaseAddress = (LPVOID)hModule; NtHeaders = (PIMAGE_NT_HEADERS)((LPSTR)BaseAddress + ((PIMAGE_DOS_HEADER)BaseAddress)->e_lfanew); MaxAddress = (LPVOID)((LPSTR)BaseAddress + NtHeaders->OptionalHeader.SizeOfImage); while ( BaseAddress < MaxAddress ) { try { FillMemory(BaseAddress,SystemInfo.dwPageSize,0xfe); } except ( EXCEPTION_EXECUTE_HANDLER ) { ; } BaseAddress = (LPVOID)((LPSTR)BaseAddress + SystemInfo.dwPageSize); } TerminateProcess(GetCurrentProcess(),1); return 1; }
void SetPacketData( char* psData, int nSize, long data) { // 오른쪽 정렬 // 앞의 빈자리는 '0' 으로 채움 // 버퍼크기가 원 데이터보다 작다면 데이터는 짤려야 하므로 에러발생 //string stc = misc::itoa(data); char buf[32] = {0}; sprintf_s(buf, 32, "%d", data); int nLen = strlen(buf); ATLASSERT( nSize >= nLen ); // 먼저 0 으로 채우고 FillMemory( psData, nSize, '0' ); // 뒤에서부터 데이터를 넣는다. if( nSize >= nLen ) { CopyMemory( psData+nSize-nLen, buf, nLen ); } // 원데이터가 크다면 원데이터의 뒷부분을 버린다. else { CopyMemory( psData, buf, nSize ); } }
// Update device data tables (so we only have to poll and read the devices once). This is called by GetKeys and ReadController. void GetDeviceDatas() { HRESULT hr; /* if( g_sysKeyboard.didHandle ) { hr = g_sysKeyboard.didHandle->Poll(); if( FAILED( hr )) AcquireDevice( g_sysKeyboard.didHandle ); // we'll try again next time hr = g_sysKeyboard.didHandle->GetDeviceState( sizeof(g_sysKeyboard.stateAs.rgbButtons), &g_sysKeyboard.stateAs.rgbButtons ); if( FAILED( hr )) ZeroMemory( g_sysKeyboard.stateAs.rgbButtons, sizeof(g_sysKeyboard.stateAs.rgbButtons) ); } */ if( g_sysMouse.didHandle ) { hr = g_sysMouse.didHandle->Poll(); if( FAILED( hr )) AcquireDevice( g_sysMouse.didHandle ); // we'll try again next time hr = g_sysMouse.didHandle->GetDeviceState( sizeof(DIMOUSESTATE2), &g_sysMouse.stateAs.mouseState ); if( FAILED( hr )) ZeroMemory( &g_sysMouse.stateAs.mouseState, sizeof(DIMOUSESTATE2) ); } // need to just poll every damn device we're using for( int i = 0; i < g_nDevices; i++ ) { if( g_devList[i].didHandle ) { if( FAILED( g_devList[i].didHandle->Poll() )) AcquireDevice( g_devList[i].didHandle ); // we'll try again next time switch (LOBYTE(g_devList[i].dwDevType)) { case DI8DEVTYPE_KEYBOARD: hr = g_devList[i].didHandle->GetDeviceState( sizeof(g_devList[i].stateAs.rgbButtons), g_devList[i].stateAs.rgbButtons ); break; case DI8DEVTYPE_MOUSE: hr = g_devList[i].didHandle->GetDeviceState( sizeof(g_devList[i].stateAs.mouseState), &g_devList[i].stateAs.mouseState ); break; default: hr = g_devList[i].didHandle->GetDeviceState( sizeof(g_devList[i].stateAs.joyState), &g_devList[i].stateAs.joyState ); } } else hr = DIERR_NOTACQUIRED; if( hr == DIERR_NOTACQUIRED ) // changed this because in the rare condition that we lose input between polling and GetDeviceState we don't want to reset our current controls --rabid { ZeroMemory( &g_devList[i].stateAs.joyState, sizeof(DEVICE::INPUTSTATE)); if (g_devList[i].dwDevType != DI8DEVTYPE_KEYBOARD && g_devList[i].dwDevType != DI8DEVTYPE_MOUSE) FillMemory( g_devList[i].stateAs.joyState.rgdwPOV, sizeof(g_devList[i].stateAs.joyState.rgdwPOV), 0xFF ); // g_devList[i].stateAs.joyState.rgdwPOV = -1; // -1 is neutral } } }