English help on website



Hidemaru_EvalMacro(Ver9.15対応版)
目次DLL側から秀丸エディタの関数呼び出し− Hidemaru_EvalMacro
Hidemaru_EvalMacro関数
BOOL WINAPI Hidemaru_EvalMacro( const WCHAR* pwsz );

pwszで指定するテキストのマクロを実行します。
dllfuncで呼び出されたDLLの中から呼び出すことができます。
マクロ実行中でないときは使えません。
成功時は0以外を返します。
実行するマクロは制約があり、以下のことはできません。
・gotoやbreakで呼び出し元のマクロの実行位置を制御。
・setactivehidemaruなどでマクロ実行対象のアクティブ切り替え。
・execmacroでマクロの呼び出し。
・filter文の変換モジュールの中からの呼び出し。

例:
#include <windows.h>

extern "C" __declspec( dllexport )
INT_PTR _cdecl DllFuncTest( INT_PTR nHwnd ) {
    HINSTANCE hinstExe = GetModuleHandle( NULL );
    BOOL (WINAPI* pfnHidemaru_EvalMacro)( const WCHAR* );
    (FARPROC&)pfnHidemaru_EvalMacro = GetProcAddress( hinstExe, "Hidemaru_EvalMacro" );
    
    if( pfnHidemaru_EvalMacro ) {
        BOOL f = pfnHidemaru_EvalMacro(
            L"question \"OK?\";"
            L"if(result==yes){"
            L"    message \"イエス\";"
            L"} else {"
            L"    message \"ノー\";"
            L"}"
             );
    }
    return 0;
}

参考:
eval
マクロ実行するメッセージ
/xオプション(秀丸エディタの起動オプションのヘルプ)