Hidemaru_GetTotalTextUnicode(Ver9.35対応版)
目次−
DLL側から秀丸エディタの関数呼び出し−
Hidemaru_GetTotalTextUnicode
Hidemaru_GetTotalTextUnicode関数
HGLOBAL WINAPI Hidemaru_GetTotalTextUnicode( void );
テキスト全体のメモリ確保して返します。
HGLOBALのハンドルはGlobalFreeで解放する必要があります。
メモリ確保に失敗したときはNULLを返します。
途中に改行コードが含まれる場合、"\x0d\x0a"として取得します。"\n"と同じではないので注意してください。"\n"は"\x0a"と同じです。
例:マクロ側
loaddll @"C:\Folder\Test.dll";
#a = dllfunc("DllFuncTest",hidemaruhandle(0));
endmacro;
例:DLL側
#include <windows.h>
extern "C" __declspec( dllexport )
INT_PTR _cdecl DllFuncTest( INT_PTR nHwnd ) {
HINSTANCE hinstExe = GetModuleHandle( NULL );
HGLOBAL (WINAPI* pfnHidemaru_GetTotalTextUnicode)( void );
(FARPROC&)pfnHidemaru_GetTotalTextUnicode = GetProcAddress( hinstExe, "Hidemaru_GetTotalTextUnicode" );
if( pfnHidemaru_GetTotalTextUnicode ) {
HGLOBAL hGlobal = pfnHidemaru_GetTotalTextUnicode();
if( hGlobal ) {
WCHAR* pwsz = (WCHAR*)GlobalLock( hGlobal );
if( wcslen( pwsz ) >= 500 ) {
pwsz[500] = '\0';
}
MessageBoxW( (HWND)nHwnd, pwsz, L"全体のテキスト(500文字上限)", MB_OK );
GlobalUnlock( hGlobal );
GlobalFree( hGlobal );
}
}
return 0;
}
参照:
gettext
gettext2
Hidemaru_GetTotalTextUnicode
hidemaru.getTotalText
gettotaltext
hidemaru.setTotalText
settotaltext