macro.c

来自「ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机」· C语言 代码 · 共 929 行 · 第 1/2 页

C
929
字号
void CALLBACK MACRO_ExecFile(LPCSTR str1, LPCSTR str2, LONG u, LPCSTR str3){    WINE_FIXME("(\"%s\", \"%s\", %u, \"%s\")\n", str1, str2, u, str3);}void CALLBACK MACRO_ExecProgram(LPCSTR str, LONG u){    WINE_FIXME("(\"%s\", %u)\n", str, u);}void CALLBACK MACRO_Exit(void){    WINE_TRACE("()\n");    while (Globals.win_list)        DestroyWindow(Globals.win_list->hMainWnd);}void CALLBACK MACRO_ExtAbleItem(LPCSTR str, LONG u){    WINE_FIXME("(\"%s\", %u)\n", str, u);}void CALLBACK MACRO_ExtInsertItem(LPCSTR str1, LPCSTR str2, LPCSTR str3, LPCSTR str4, LONG u1, LONG u2){    WINE_FIXME("(\"%s\", \"%s\", \"%s\", \"%s\", %u, %u)\n", str1, str2, str3, str4, u1, u2);}void CALLBACK MACRO_ExtInsertMenu(LPCSTR str1, LPCSTR str2, LPCSTR str3, LONG u1, LONG u2){    WINE_FIXME("(\"%s\", \"%s\", \"%s\", %u, %u)\n", str1, str2, str3, u1, u2);}BOOL CALLBACK MACRO_FileExist(LPCSTR str){    WINE_TRACE("(\"%s\")\n", str);    return GetFileAttributes(str) != INVALID_FILE_ATTRIBUTES;}void CALLBACK MACRO_FileOpen(void){    char szFile[MAX_PATH];    if (WINHELP_GetOpenFileName(szFile, MAX_PATH))    {        HLPFILE*        hlpfile = WINHELP_LookupHelpFile(szFile);        WINHELP_CreateHelpWindowByHash(hlpfile, 0,                                       WINHELP_GetWindowInfo(hlpfile, "main"), SW_SHOWNORMAL);    }}void CALLBACK MACRO_Find(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_Finder(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_FloatingMenu(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_Flush(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_FocusWindow(LPCSTR lpszWindow){    WINHELP_WINDOW *win;    WINE_TRACE("(\"%s\")\n", lpszWindow);    if (!lpszWindow || !lpszWindow[0]) lpszWindow = "main";    for (win = Globals.win_list; win; win = win->next)        if (win->lpszName && !lstrcmpi(win->lpszName, lpszWindow))            SetFocus(win->hMainWnd);}void CALLBACK MACRO_Generate(LPCSTR str, LONG w, LONG l){    WINE_FIXME("(\"%s\", %x, %x)\n", str, w, l);}void CALLBACK MACRO_GotoMark(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);}void CALLBACK MACRO_HelpOn(void){    WINE_TRACE("()\n");    MACRO_JumpContents((Globals.wVersion > 4) ? "winhelp32.hlp" : "winhelp.hlp", NULL);}void CALLBACK MACRO_HelpOnTop(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_History(void){    WINE_TRACE("()\n");    if (Globals.active_win && !Globals.active_win->hHistoryWnd)    {        HWND hWnd = CreateWindow(HISTORY_WIN_CLASS_NAME, "History", WS_OVERLAPPEDWINDOW,                                 0, 0, 0, 0, 0, 0, Globals.hInstance, Globals.active_win);        ShowWindow(hWnd, SW_NORMAL);    }}void CALLBACK MACRO_IfThen(BOOL b, LPCSTR t){    if (b) MACRO_ExecuteMacro(t);}void CALLBACK MACRO_IfThenElse(BOOL b, LPCSTR t, LPCSTR f){    if (b) MACRO_ExecuteMacro(t); else MACRO_ExecuteMacro(f);}BOOL CALLBACK MACRO_InitMPrint(void){    WINE_FIXME("()\n");    return FALSE;}void CALLBACK MACRO_InsertItem(LPCSTR str1, LPCSTR str2, LPCSTR str3, LPCSTR str4, LONG u){    WINE_FIXME("(\"%s\", \"%s\", \"%s\", \"%s\", %u)\n", str1, str2, str3, str4, u);}void CALLBACK MACRO_InsertMenu(LPCSTR str1, LPCSTR str2, LONG u){    WINE_FIXME("(\"%s\", \"%s\", %u)\n", str1, str2, u);}BOOL CALLBACK MACRO_IsBook(void){    WINE_TRACE("()\n");    return Globals.isBook;}BOOL CALLBACK MACRO_IsMark(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);    return FALSE;}BOOL CALLBACK MACRO_IsNotMark(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);    return TRUE;}void CALLBACK MACRO_JumpContents(LPCSTR lpszPath, LPCSTR lpszWindow){    HLPFILE*    hlpfile;    WINE_TRACE("(\"%s\", \"%s\")\n", lpszPath, lpszWindow);    hlpfile = WINHELP_LookupHelpFile(lpszPath);    WINHELP_CreateHelpWindowByHash(hlpfile, 0,                                   WINHELP_GetWindowInfo(hlpfile, lpszWindow),                                   SW_NORMAL);}void CALLBACK MACRO_JumpContext(LPCSTR lpszPath, LPCSTR lpszWindow, LONG context){    HLPFILE*    hlpfile;    WINE_TRACE("(\"%s\", \"%s\", %d)\n", lpszPath, lpszWindow, context);    hlpfile = WINHELP_LookupHelpFile(lpszPath);    /* Some madness: what user calls 'context', hlpfile calls 'map' */    WINHELP_CreateHelpWindowByMap(hlpfile, context,                                  WINHELP_GetWindowInfo(hlpfile, lpszWindow),                                  SW_NORMAL);}void CALLBACK MACRO_JumpHash(LPCSTR lpszPath, LPCSTR lpszWindow, LONG lHash){    HLPFILE*    hlpfile;    WINE_TRACE("(\"%s\", \"%s\", %u)\n", lpszPath, lpszWindow, lHash);    hlpfile = WINHELP_LookupHelpFile(lpszPath);    WINHELP_CreateHelpWindowByHash(hlpfile, lHash,                                   WINHELP_GetWindowInfo(hlpfile, lpszWindow),                                   SW_NORMAL);}void CALLBACK MACRO_JumpHelpOn(void){    WINE_FIXME("()\n");}/* FIXME: those two macros are wrong * they should only contain 2 strings, path & window are coded as path>window */void CALLBACK MACRO_JumpID(LPCSTR lpszPath, LPCSTR lpszWindow, LPCSTR topic_id){    WINE_TRACE("(\"%s\", \"%s\", \"%s\")\n", lpszPath, lpszWindow, topic_id);    MACRO_JumpHash(lpszPath, lpszWindow, HLPFILE_Hash(topic_id));}void CALLBACK MACRO_JumpKeyword(LPCSTR lpszPath, LPCSTR lpszWindow, LPCSTR keyword){    WINE_FIXME("(\"%s\", \"%s\", \"%s\")\n", lpszPath, lpszWindow, keyword);}void CALLBACK MACRO_KLink(LPCSTR str1, LONG u, LPCSTR str2, LPCSTR str3){    WINE_FIXME("(\"%s\", %u, \"%s\", \"%s\")\n", str1, u, str2, str3);}void CALLBACK MACRO_Menu(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_MPrintHash(LONG u){    WINE_FIXME("(%u)\n", u);}void CALLBACK MACRO_MPrintID(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);}void CALLBACK MACRO_Next(void){    HLPFILE_PAGE*   page;    WINE_TRACE("()\n");    page = Globals.active_win->page;    page = HLPFILE_PageByOffset(page->file, page->browse_fwd);    if (page)    {        page->file->wRefCount++;        WINHELP_CreateHelpWindow(page, Globals.active_win->info, SW_NORMAL);    }}void CALLBACK MACRO_NoShow(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_PopupContext(LPCSTR str, LONG u){    WINE_FIXME("(\"%s\", %u)\n", str, u);}void CALLBACK MACRO_PopupHash(LPCSTR str, LONG u){    WINE_FIXME("(\"%s\", %u)\n", str, u);}void CALLBACK MACRO_PopupId(LPCSTR str1, LPCSTR str2){    WINE_FIXME("(\"%s\", \"%s\")\n", str1, str2);}void CALLBACK MACRO_PositionWindow(LONG i1, LONG i2, LONG u1, LONG u2, LONG u3, LPCSTR str){    WINE_FIXME("(%i, %i, %u, %u, %u, \"%s\")\n", i1, i2, u1, u2, u3, str);}void CALLBACK MACRO_Prev(void){    HLPFILE_PAGE*   page;    WINE_TRACE("()\n");    page = Globals.active_win->page;    page = HLPFILE_PageByOffset(page->file, page->browse_bwd);    if (page)    {        page->file->wRefCount++;        WINHELP_CreateHelpWindow(page, Globals.active_win->info, SW_NORMAL);    }}void CALLBACK MACRO_Print(void){    PRINTDLG printer;    WINE_TRACE("()\n");    printer.lStructSize         = sizeof(printer);    printer.hwndOwner           = Globals.active_win->hMainWnd;    printer.hInstance           = Globals.hInstance;    printer.hDevMode            = 0;    printer.hDevNames           = 0;    printer.hDC                 = 0;    printer.Flags               = 0;    printer.nFromPage           = 0;    printer.nToPage             = 0;    printer.nMinPage            = 0;    printer.nMaxPage            = 0;    printer.nCopies             = 0;    printer.lCustData           = 0;    printer.lpfnPrintHook       = 0;    printer.lpfnSetupHook       = 0;    printer.lpPrintTemplateName = 0;    printer.lpSetupTemplateName = 0;    printer.hPrintTemplate      = 0;    printer.hSetupTemplate      = 0;    if (PrintDlgA(&printer)) {        WINE_FIXME("Print()\n");    }}void CALLBACK MACRO_PrinterSetup(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_RegisterRoutine(LPCSTR dll_name, LPCSTR proc, LPCSTR args){    FARPROC             fn = NULL;    int                 size;    WINHELP_DLL*        dll;    WINE_TRACE("(\"%s\", \"%s\", \"%s\")\n", dll_name, proc, args);    /* FIXME: are the registered DLLs global or linked to the current file ???     * We assume globals (as we did for macros, but is this really the case ???)     */    for (dll = Globals.dlls; dll; dll = dll->next)    {        if (!strcmp(dll->name, dll_name)) break;    }    if (!dll)    {        HANDLE hLib = LoadLibrary(dll_name);        /* FIXME: the library will not be unloaded until exit of program          * We don't send the DW_TERM message         */        WINE_TRACE("Loading %s\n", dll_name);        /* FIXME: should look in the directory where current hlpfile         * is loaded from         */        if (hLib == NULL)        {            /* FIXME: internationalisation for error messages */            WINE_FIXME("Cannot find dll %s\n", dll_name);        }        else if ((dll = HeapAlloc(GetProcessHeap(), 0, sizeof(*dll))))        {            dll->hLib = hLib;            dll->name = strdup(dll_name); /* FIXME */            dll->next = Globals.dlls;            Globals.dlls = dll;            dll->handler = (WINHELP_LDLLHandler)GetProcAddress(dll->hLib, "LDLLHandler");            dll->class = dll->handler ? (dll->handler)(DW_WHATMSG, 0, 0) : DC_NOMSG;            WINE_TRACE("Got class %x for DLL %s\n", dll->class, dll_name);            if (dll->class & DC_INITTERM) dll->handler(DW_INIT, 0, 0);            if (dll->class & DC_CALLBACKS) dll->handler(DW_CALLBACKS, (DWORD)Callbacks, 0);        }        else WINE_WARN("OOM\n");    }    if (dll && !(fn = GetProcAddress(dll->hLib, proc)))    {        /* FIXME: internationalisation for error messages */        WINE_FIXME("Cannot find proc %s in dll %s\n", dll_name, proc);    }    size = ++MACRO_NumLoaded * sizeof(struct MacroDesc);    if (!MACRO_Loaded) MACRO_Loaded = HeapAlloc(GetProcessHeap(), 0, size);    else MACRO_Loaded = HeapReAlloc(GetProcessHeap(), 0, MACRO_Loaded, size);    MACRO_Loaded[MACRO_NumLoaded - 1].name      = strdup(proc); /* FIXME */    MACRO_Loaded[MACRO_NumLoaded - 1].alias     = NULL;    MACRO_Loaded[MACRO_NumLoaded - 1].isBool    = 0;    MACRO_Loaded[MACRO_NumLoaded - 1].arguments = strdup(args); /* FIXME */    MACRO_Loaded[MACRO_NumLoaded - 1].fn        = fn;    WINE_TRACE("Added %s(%s) at %p\n", proc, args, fn);}void CALLBACK MACRO_RemoveAccelerator(LONG u1, LONG u2){    WINE_FIXME("(%u, %u)\n", u1, u2);}void CALLBACK MACRO_ResetMenu(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_SaveMark(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);}void CALLBACK MACRO_Search(void){    WINE_FIXME("()\n");}void CALLBACK MACRO_SetContents(LPCSTR str, LONG u){    WINE_FIXME("(\"%s\", %u)\n", str, u);}void CALLBACK MACRO_SetHelpOnFile(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);}void CALLBACK MACRO_SetPopupColor(LONG u1, LONG u2, LONG u3){    WINE_FIXME("(%u, %u, %u)\n", u1, u2, u3);}void CALLBACK MACRO_ShellExecute(LPCSTR str1, LPCSTR str2, LONG u1, LONG u2, LPCSTR str3, LPCSTR str4){    WINE_FIXME("(\"%s\", \"%s\", %u, %u, \"%s\", \"%s\")\n", str1, str2, u1, u2, str3, str4);}void CALLBACK MACRO_ShortCut(LPCSTR str1, LPCSTR str2, LONG w, LONG l, LPCSTR str){    WINE_FIXME("(\"%s\", \"%s\", %x, %x, \"%s\")\n", str1, str2, w, l, str);}void CALLBACK MACRO_TCard(LONG u){    WINE_FIXME("(%u)\n", u);}void CALLBACK MACRO_Test(LONG u){    WINE_FIXME("(%u)\n", u);}BOOL CALLBACK MACRO_TestALink(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);    return FALSE;}BOOL CALLBACK MACRO_TestKLink(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);    return FALSE;}void CALLBACK MACRO_UncheckItem(LPCSTR str){    WINE_FIXME("(\"%s\")\n", str);}void CALLBACK MACRO_UpdateWindow(LPCSTR str1, LPCSTR str2){    WINE_FIXME("(\"%s\", \"%s\")\n", str1, str2);}

⌨️ 快捷键说明

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