⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winmain.c

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 C
字号:

/* winmain.c - a simple entry point for WindowsCE
 *
 * Copyright (c) 2000-2002 Tenik Co.,Ltd.
 */

#include <windows.h>
#include <tchar.h>

extern int main(int argc, char *argv[]);

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR lpszCmdLine, int nCmdShow)
{
#define SIZE_ARGV   (32)

    TCHAR path[MAX_PATH];
    LPTSTR file;
    char prog[MAX_PATH];
    int argc;
    char *argv[SIZE_ARGV];
    int size;
    char *buff;
    char *argp;
    char *args;
    char quote;

    // get program name
    argc = 0;
    GetModuleFileName(GetCurrentProcess(), path, MAX_PATH);
    file = _tcsrchr(path, TEXT('\\'));
    if (NULL == file) {
        file = path;
    }
    else {
        file++;
    }
    WideCharToMultiByte(CP_ACP, 0, file, -1, prog, MAX_PATH, NULL, NULL);
    argv[argc++] = prog;

    // analyze parameters
    size = WideCharToMultiByte(CP_ACP, 0, lpszCmdLine, -1, NULL, 0, NULL, NULL);
    buff = (char *)malloc(size);
    size = WideCharToMultiByte(CP_ACP, 0, lpszCmdLine, -1, buff, size, NULL, NULL);
    quote = 0x00;
    args = argp = buff;
    if (argp && *argp && size) {
        argv[argc++] = args;
        while (*argp) {
            if (quote) {
                if (*argp == quote) {
                    argp++;
                    if (*argp != quote) {
                        quote = 0x00;
                    }
                    else {
                        *args++ = *argp++;
                    }
                }
                else {
                    *args++ = *argp++;
                }
            }
            else {
                if (*argp == ' ') {
                    *args++ = *argp++ = '\0';
                    while (*argp && *argp == ' ') {
                        argp++;
                    }
                    if (*argp && argc < SIZE_ARGV) {
                        argv[argc++] = args;
                    }
                }
                else {
                    if (*argp == '\"') {
                        quote = *argp++;
                    }
                    else {
                        *args++ = *argp++;
                    }
                }
            }
        }
    }
    *args = '\0';
    return main(argc, argv);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -