Пример #1
0
void CSmartServer::CreateIniSettings()
{
	ASSERTE(GetIniSettings() == NULL);

	CIniSettings *pisIniSettings = new (nothrow) CIniSettings();
	ASSERTE(pisIniSettings);

	SetIniSettings(pisIniSettings);
}
Пример #2
0
void CSmartServer::DestroyIniSettings()
{
	CIniSettings *pisIniSettings = GetIniSettings();

	if (pisIniSettings)
	{
		SetIniSettings(NULL);
		delete pisIniSettings;
	}
}
Пример #3
0
bool CSmartServer::DoLoadConfig()
{
	START_FUNCTION_BOOL();
	CIniSettings *pisIniSettings = GetIniSettings();

	RETRIEVE_CONFIG_STRING(SECTION_NET, NET_ADDRESS, NET_ADDRESS_DEF, ECO_BIND_ADDRESS);
	RETRIEVE_CONFIG_STRING(SECTION_NET, NET_PORT, NET_PORT_DEF, ECO_BIND_PORT);
		
	RETRIEVE_CONFIG_STRING(SECTION_DEVICE, DEVICE_PORT, DEVICE_PORT_DEF, ECO_DEVICE_PORT);

	END_FUNCTION_BOOL();
}
Пример #4
0
bool CSmartServer::LoadConfig()
{
	START_FUNCTION_BOOL();

	CIniSettings *pisIniSettings = GetIniSettings();
	const string sConfigFileName = GetBinaryDir() + g_szConfigFileName;

	pisIniSettings->LoadFromFile(sConfigFileName);

	if (!DoLoadConfig())
	{
		break;
	}
	
	END_FUNCTION_BOOL();
}
Пример #5
0
LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	RECT rc;
	HANDLE hPalMem;

	flightstruct *fs = &flights;
	int		x, R,G,B;
	struct elem *pelem;
	
	switch (message)
	{
	case WM_CREATE:
		vLoadStrings();
		GetIniSettings();

		wTimer = SetTimer(hWnd, ID_TIMER, wElapse, NULL);	// create timer for image refresh

		GetClientRect(hWnd, &rc);
		fs->centerx = rc.right / 2;
		fs->centery = rc.bottom / 2;
		fs->smallscrn = (rc.right < 320);

		fs->num = iRotorCnt;

		if (fs->elements == NULL) {							// allocate memory
			if ((fs->elements = (struct elem *)
					malloc(sizeof(struct elem) * fs->num)) == 0) {
						exit(1);
			}
			if ((fs->savex = (LPINT)malloc(sizeof(INT) * iSegLen)) == 0)
					exit(1);
			if ((fs->savey = (LPINT)malloc(sizeof(INT) * iSegLen)) == 0)
					exit(1);
		}
		(void) memset(fs->savex,0, sizeof(fs->savex));

		pelem = fs->elements;

		for (x = fs->num; --x >= 0; pelem++) {			// define drift for segments
			pelem->radius_drift_max = (FLOAT)1.0;
			pelem->radius_drift_now = (FLOAT)1.0;

			pelem->end_radius = (FLOAT)100.0;			// define end radius

			pelem->ratio_drift_max = (FLOAT)1.0;		// define ratio drift
			pelem->ratio_drift_now = (FLOAT)1.0;
			pelem->end_ratio = (FLOAT)10.0;
		}

		srand((unsigned)time(NULL));					// seed random # generator

		fs->rotor = 0;
		fs->prev = 1;
		fs->lastx = fs->centerx;
		fs->lasty = fs->centery;
		fs->angle = (float)(rand() % (long)MAXANGLE) / 3;	// define initial angle
		fs->r = iClrStart;									// set start color value
		fs->firsttime = TRUE;								// first time through

		hPalMem = LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) + PALSIZE * sizeof(PALETTEENTRY));
		if (!hPalMem) {
			return -1;
		}
		pLogPal = (NPLOGPALETTE) LocalLock(hPalMem);
		pLogPal->palVersion = 0x300;
		pLogPal->palNumEntries = PALSIZE;
		for (x=0, R=255, G=0, B=0; x < PALSIZE; x++) {
			cycle_colors(&R, &G, &B, 255, 0, 6);

			pLogPal->palPalEntry[x].peRed = LOBYTE(R);
			pLogPal->palPalEntry[x].peGreen = LOBYTE(G);
			pLogPal->palPalEntry[x].peBlue = LOBYTE(B);
			pLogPal->palPalEntry[x].peFlags = PC_RESERVED;
		}
		hPal = CreatePalette((LPLOGPALETTE)pLogPal);
		if (!hPal) {
			return -1;
		}
		break;

	case WM_ERASEBKGND:
        GetClientRect(hWnd,&rc);
		FillRect((HDC)wParam,&rc,(HBRUSH)GetStockObject(BLACK_BRUSH));
        return 0L;
		break;

	case WM_TIMER:
		MoveImage(hWnd);
		break;
	
	case WM_DESTROY:
		if( wTimer )							// if timer was defined
			KillTimer(hWnd, ID_TIMER);			// then kill it
		free( flights.savey );					// free any allocated memory
		free( flights.savex );
		free( flights.elements );

		if (hPal) {								// free palette memory
			DeleteObject(hPal);
		}
		break;
	}

	return DefScreenSaverProc(hWnd, message, wParam, lParam);
}
Пример #6
0
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	HWND	hOK,
			hScrl;
	INT		iScrlPos;
	
	hScrl = GetDlgItem(hDlg, IDC_ROTORSPEED);

	switch (message)
	{
	case WM_INITDIALOG:
		hOK = GetDlgItem(hDlg, IDOK);
		vLoadStrings();
		GetIniSettings();
		bInitDlgItems(hDlg, hScrl);
		return TRUE;

	case WM_HSCROLL:
		iScrlPos = MIN_SPEED-wElapse;
			switch ((int)LOWORD(wParam))			// message from scrollbar
			{
				case SB_LINERIGHT:					// determine specific movement type
					iScrlPos += 5;
					break;
				case SB_LINELEFT:
					iScrlPos -= 5;
					break;
				case SB_PAGERIGHT:				
					iScrlPos += 20;
					break;
				case SB_PAGELEFT:
					iScrlPos -= 20;
					break;
				case SB_THUMBPOSITION:			// grabbed thumb and moved it
					iScrlPos = (short int)HIWORD(wParam);
					break;
			}
			iScrlPos = min(MIN_SPEED,max(1,iScrlPos));		// check to see within desired range
			if (iScrlPos != MIN_SPEED-(int)wElapse)
			{
				wElapse = MIN_SPEED-iScrlPos;								// save new position
				SetScrollPos((HWND)lParam, SB_CTL, iScrlPos, TRUE);			// display position				
			}
			break;

	case WM_COMMAND:
		switch(LOWORD(wParam))
		{		
		case IDC_DEFAULT:
			iSegLen = DEF_SEGLEN;
			iSegCnt = DEF_SEGCNT;
			iRotorCnt = DEF_ROTORCNT;
			iClrStart = DEF_CLRSTART;
			iClrInc = DEF_CLRINC;
			wElapse = DEF_SPEED;				

			bInitDlgItems(hDlg, hScrl);				
			return TRUE;

		case IDOK:
			bGetDlgItems(hDlg);
			SetIniSettings();

		case IDCANCEL:
			EndDialog(hDlg, LOWORD(wParam) == IDOK);
			return TRUE;
		}
	}
	return FALSE;
}
Пример #7
0
LRESULT WINAPI ScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {

	RECT	rc;
	HANDLE	hPalMem;	

    switch (msg)
    {                
        case WM_CREATE:
        {
			gravstruct	*gp = &gravs;
        	int		i, R,G,B;
			unsigned char ball;

			vLoadStrings();					// load strings from table
			GetIniSettings();				// get settings from ini file (control.ini)
        	
            wTimer = SetTimer(hWnd, ID_TIMER, wElapse, NULL);	// create timer to move image
                        
            GetClientRect(hWnd, &rc);							// find size of screen
			gp->width = rc.right;
			gp->height = rc.bottom;

			gp->sr = STARRADIUS;

			gp->nplanets = iPlanets;
			srand((unsigned)time(NULL));	// seed random w/ timer

			if (!gp->planets) {
				gp->planets = (planetstruct*)malloc((gp->nplanets+1)*sizeof(planetstruct));
				memset(gp->planets, 0, (gp->nplanets+1)*sizeof(planetstruct));
				gp->starcolor = rand() % (PALSIZE-21);
			}

			for (ball = 0; ball <= gp->nplanets; ball++)
				init_planet(&(gp->planets[ball]));

			// Create a logical palette to play with
			hPalMem = LocalAlloc(LMEM_FIXED,
								sizeof(LOGPALETTE)
								+ PALSIZE * sizeof(PALETTEENTRY));
			if (!hPalMem) {
				// error("No memory for palette");
				return -1;
			}
			pLogPal = (NPLOGPALETTE) LocalLock(hPalMem);
			pLogPal->palVersion = 0x300;
			pLogPal->palNumEntries = PALSIZE;
	        for (i=0, R=255,G=0,B=0; i<PALSIZE; i++) {
	        
	        	cycle_colors(&R,&G,&B,255,0,6);
	        	
	            pLogPal->palPalEntry[i].peRed = LOBYTE(R);
	            pLogPal->palPalEntry[i].peGreen = LOBYTE(G);
	            pLogPal->palPalEntry[i].peBlue = LOBYTE(B);
	            pLogPal->palPalEntry[i].peFlags = PC_RESERVED;
	        }
	        hPal = CreatePalette((LPLOGPALETTE)pLogPal);
	        if (!hPal) {
	            //Error("CreatePalette() failed");
	            return -1;
	        }
			break;
        }
        
        case WM_TIMER:                              // BOUNCER-specific
            MoveImage(hWnd);						// move image around
            break;

        case WM_DESTROY:                            // BOUNCER-specific
            if( wTimer )
            	KillTimer(hWnd, ID_TIMER);
			if (hPal)
				DeleteObject(hPal);
			free(gravs.planets);            
            break;

        case WM_ERASEBKGND:
			GetClientRect(hWnd,&rc);
			FillRect((HDC)wParam,&rc,(HBRUSH)GetStockObject(BLACK_BRUSH));
            return 0L;

        default:
            break;
        }

    return DefScreenSaverProc(hWnd, msg, wParam, lParam);
}
Пример #8
0
BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	HWND	hScrl;
	int 	iScrlPos;	

	hScrl = GetDlgItem(hDlg, IDC_SPEED);

	switch(message)
	{
		case WM_INITDIALOG: {
			vLoadStrings();
			GetIniSettings();
			bInitDlgItems(hDlg, hScrl);
			return TRUE;
		}
		case WM_HSCROLL: {
			iScrlPos = 1000-wElapse;
			switch ((int)LOWORD(wParam))
			{
				case SB_LINERIGHT:					// determine specific movement type
					iScrlPos += 10;
					break;
				case SB_LINELEFT:
					iScrlPos -= 10;
					break;
				case SB_PAGERIGHT:				
					iScrlPos += 50;
					break;
				case SB_PAGELEFT:
					iScrlPos -= 50;
					break;
				case SB_THUMBPOSITION:			// grabbed thumb and moved it
					iScrlPos = (short int)HIWORD(wParam);
					break;
			}
			iScrlPos = min(1000,max(1,iScrlPos));		// check to see within desired range
			if (iScrlPos != 1000-(int)wElapse)
			{
				wElapse = 1000-iScrlPos;										// save new position
				SetScrollPos((HWND)lParam, SB_CTL, iScrlPos, TRUE);			// display position				
			}
			return TRUE;
		}
		case WM_COMMAND: {			
			switch (LOWORD(wParam))
			{
				case IDC_DEFAULTS: {
					wElapse = DEF_SPEEDSET;
					iPlanets = DEF_PLANETS;
					iTrails = DEF_TRAILS;
					iDamping = DEF_DAMPING;
					iColorCycle = DEF_CYCLE;
					bInitDlgItems(hDlg, hScrl);
					return TRUE;
				}
				case IDOK: {					
					bGetDlgItems(hDlg);
					SetIniSettings();				
				}
				case IDCANCEL:
                    EndDialog(hDlg,LOWORD(wParam) == IDOK);
					return TRUE;
				default:
					break;
			}
		}
		default:
			break;
	}
	return FALSE;
}