English help on website



Hidemaru_CheckQueueStatus(Ver9.35対応版)
目次DLL側から秀丸エディタの関数呼び出し− Hidemaru_CheckQueueStatus
Hidemaru_CheckQueueStatus関数
BOOL WINAPI Hidemaru_CheckQueueStatus( void );

キー入力があるなどの理由で処理を中断するべきかを返します。

例:
#include <windows.h>

extern "C" __declspec( dllexport )
INT_PTR _cdecl DllFuncTest( INT_PTR nHwnd ) {
    HINSTANCE hinstExe = GetModuleHandle( NULL );
    BOOL (WINAPI* pfnHidemaru_CheckQueueStatus)( void );
    (FARPROC&)pfnHidemaru_CheckQueueStatus = GetProcAddress( hinstExe, "Hidemaru_CheckQueueStatus" );
    
    if( pfnHidemaru_CheckQueueStatus ) {
        if( MessageBoxW( (HWND)nHwnd, L"画面左上に中断状態を表示します", L"Hidemaru_CheckQueueStatus", MB_OKCANCEL ) == IDOK ) {
            DWORD dwTick = GetTickCount();
            HDC hdc = GetDC(0);
            BOOL fStop = FALSE;
            WCHAR* pwsz = L"○5秒待機中 ";
            TextOutW( hdc, 0, 0, pwsz, (int)wcslen( pwsz ) );
            while( GetTickCount() < (dwTick + 5000) ) {
                fStop = pfnHidemaru_CheckQueueStatus();
                if( fStop ) {
                    break;
                }
                Sleep( 30 );
            }
            if( fStop ) {
                pwsz = L"●中断しました ";
            } else {
                pwsz = L"○中断せず終了 ";
            }
            TextOutW( hdc, 0, 0, pwsz, (int)wcslen( pwsz ) );
            ReleaseDC(0,hdc);
        }
    }
    
    return 0;
}