|  | /* | 
|  | *   Control | 
|  | *   Copyright (C) 1998 by Marcel Baur <mbaur@g26.ethz.ch> | 
|  | *   To be distributed under the Wine license | 
|  | */ | 
|  |  | 
|  | #include <stdio.h> | 
|  | #include <string.h> | 
|  | #include <windows.h> | 
|  | #include <shellapi.h> | 
|  | #include "params.h" | 
|  |  | 
|  | void launch(char what[255]) | 
|  | { | 
|  | HINSTANCE hChild; | 
|  | char szArgs[255]; | 
|  |  | 
|  | lstrcpy(szArgs, szEXEC_ARGS); | 
|  | strcat(szArgs, what); | 
|  |  | 
|  | hChild = ShellExecute((HWND)0, 0, szEXEC_PREFIX, szArgs, "", SW_SHOWNORMAL); | 
|  | exit(0); | 
|  | } | 
|  |  | 
|  | int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, CHAR *szParam, INT argc) | 
|  | { | 
|  |  | 
|  | char szParams[255]; | 
|  | lstrcpy(szParams, szParam); | 
|  | CharUpper(szParams); | 
|  |  | 
|  | switch (argc) { | 
|  | case 0:  /* no parameters - pop up whole "Control Panel" by default */ | 
|  | launch(""); | 
|  | break; | 
|  |  | 
|  | case 1:  /* check for optional parameter */ | 
|  | if (strcmp(szParams,szP_DESKTOP)      ==0) launch(szC_DESKTOP); | 
|  | if (strcmp(szParams,szP_COLOR)        ==0) launch(szC_COLOR); | 
|  | if (strcmp(szParams,szP_DATETIME)     ==0) launch(szC_DATETIME); | 
|  | if (strcmp(szParams,szP_DESKTOP)      ==0) launch(szC_DESKTOP); | 
|  | if (strcmp(szParams,szP_INTERNATIONAL)==0) launch(szC_INTERNATIONAL); | 
|  | if (strcmp(szParams,szP_KEYBOARD)     ==0) launch(szC_KEYBOARD); | 
|  | if (strcmp(szParams,szP_MOUSE)        ==0) launch(szC_MOUSE); | 
|  | if (strcmp(szParams,szP_PORTS)        ==0) launch(szC_PORTS); | 
|  | if (strcmp(szParams,szP_PRINTERS)     ==0) launch(szC_PRINTERS); | 
|  |  | 
|  | /* couldn't recognize desired panel, going default mode */ | 
|  | launch(""); | 
|  | break; | 
|  |  | 
|  | default: printf("Syntax error."); | 
|  | } | 
|  | return 0; | 
|  | } |