void CSmartServer::CreateIniSettings() { ASSERTE(GetIniSettings() == NULL); CIniSettings *pisIniSettings = new (nothrow) CIniSettings(); ASSERTE(pisIniSettings); SetIniSettings(pisIniSettings); }
void CSmartServer::DestroyIniSettings() { CIniSettings *pisIniSettings = GetIniSettings(); if (pisIniSettings) { SetIniSettings(NULL); delete pisIniSettings; } }
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(); }
bool CSmartServer::LoadConfig() { START_FUNCTION_BOOL(); CIniSettings *pisIniSettings = GetIniSettings(); const string sConfigFileName = GetBinaryDir() + g_szConfigFileName; pisIniSettings->LoadFromFile(sConfigFileName); if (!DoLoadConfig()) { break; } END_FUNCTION_BOOL(); }
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); }
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; }
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); }
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; }