English help on website



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

dllfunc等が呼ばれているとき、どのような呼ばれ方をしているかを取得します。

nに-1を指定すると、loaddllのされ方を返します。1以上でloaddll関数の返り値と同じです。-1の場合はloaddll文で読み込まれたDLLです。

nに0を指定すると、dllfunc/dllfuncw/dllfuncstr/dllfuncstrwのどれで呼ばれたかによって、returnで返すべき値を示します。
以下の値のいずれかが返ります。
    #define DLLFUNCRETURN_NOTCALL   0       //呼ばれていない
    #define DLLFUNCRETURN_INT       0x0001  //INT_PTRを返すべき(dllfuncまたはdllfuncw)
    #define DLLFUNCRETURN_CHAR_PTR  0x0002  //char*を返すべき(dllfuncstr)
    #define DLLFUNCRETURN_WCHAR_PTR 0x0003  //WCHAR*を返すべき(dllfuncstrw)
    #define DLLFUNCRETURN_DOUBLE    0x0004  //doubleを返すべき(dllfuncまたはdllfuncwで浮動小数点数が有効)

nに1から数えた順番の値を指定すると、1から数えたパラメータの種類が数値/文字列/Unicode文字列/浮動小数点数かを返します。
パラメータの最大は64個です。
以下の値のいずれかが返ります。
    #define DLLFUNCPARAM_NOPARAM    0       //以降のパラメータなし
    #define DLLFUNCPARAM_INT        0x0100  //INT_PTRのパラメータ
    #define DLLFUNCPARAM_CHAR_PTR   0x0200  //char*のパラメータ
    #define DLLFUNCPARAM_WCHAR_PTR  0x0300  //WCHAR*のパラメータ
    #define DLLFUNCPARAM_DOUBLE     0x0400  //doubleのパラメータ

dllfunc等を呼んでいる間、最後にdllfunc等を呼んだ内容のみ取得できます。
例えばdllfunc関数内でHidemaru_EvalMacroでさらにdllfuncを呼び出す場合、取得できるものは一番新しく呼んだもののみです。

dllfunc等の説明にサンプルがあります。
dllfunc
dllfuncstr
dllfuncstrw
dllfuncw