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")
}
Exemplo n.º 3
0
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;
		}
	}
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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);

}
Exemplo n.º 6
0
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")
}
Exemplo n.º 7
0
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")
}
Exemplo n.º 9
0
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);
}
Exemplo n.º 10
0
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;
}
Exemplo n.º 11
0
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);
}
Exemplo n.º 12
0
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;
}
Exemplo n.º 13
0
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;
}
Exemplo n.º 15
0
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;
	}
}
Exemplo n.º 16
0
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;
}
Exemplo n.º 17
0
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");								\
        }
    }
}
Exemplo n.º 18
0
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;
}
Exemplo n.º 19
0
// 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);
}
Exemplo n.º 20
0
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);
}
Exemplo n.º 21
0
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);
}
Exemplo n.º 22
0
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;
}
Exemplo n.º 23
0
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);
}
Exemplo n.º 24
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;
	}
}
Exemplo n.º 25
0
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;
}
Exemplo n.º 26
0
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);
}
Exemplo n.º 27
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);
}
Exemplo n.º 28
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;
}
Exemplo n.º 29
0
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 );
	}


}
Exemplo n.º 30
0
// 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
		}	
	}
}