Example plugin now correctly uses string_size when allocating its example message buffer
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6602 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
5c6dfdca9a
commit
1f8866ccd8
1 changed files with 11 additions and 13 deletions
|
@ -1,23 +1,18 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <nsis/pluginapi.h> // nsis plugin
|
#include <nsis/pluginapi.h> // nsis plugin
|
||||||
#ifndef _TCHAR_DEFINED
|
|
||||||
#include <tchar.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
HINSTANCE g_hInstance;
|
HINSTANCE g_hInstance;
|
||||||
|
|
||||||
HWND g_hwndParent;
|
HWND g_hwndParent;
|
||||||
|
|
||||||
// To work with Unicode version of NSIS, please use TCHAR-type
|
// To work with Unicode version of NSIS, please use TCHAR-type
|
||||||
// functions for accessing the variables and the stack.
|
// functions for accessing the variables and the stack.
|
||||||
|
|
||||||
void __declspec(dllexport) myFunction(HWND hwndParent, int string_size,
|
void __declspec(dllexport) myFunction(HWND hwndParent, int string_size,
|
||||||
TCHAR *variables, stack_t **stacktop,
|
LPTSTR variables, stack_t **stacktop,
|
||||||
extra_parameters *extra)
|
extra_parameters *extra, ...)
|
||||||
{
|
{
|
||||||
g_hwndParent=hwndParent;
|
|
||||||
|
|
||||||
EXDLL_INIT();
|
EXDLL_INIT();
|
||||||
|
g_hwndParent = hwndParent;
|
||||||
|
|
||||||
|
|
||||||
// note if you want parameters from the stack, pop them off in order.
|
// note if you want parameters from the stack, pop them off in order.
|
||||||
|
@ -29,16 +24,19 @@ void __declspec(dllexport) myFunction(HWND hwndParent, int string_size,
|
||||||
|
|
||||||
// do your stuff here
|
// do your stuff here
|
||||||
{
|
{
|
||||||
TCHAR buf[3+1024+1]; // A real plugin should use string_size and not 1024!
|
LPTSTR msgbuf = GlobalAlloc(GPTR, (3 + string_size + 1) * sizeof(*msgbuf));
|
||||||
wsprintf(buf,TEXT("$0=%.1024s"),getuservariable(INST_0));
|
if (msgbuf)
|
||||||
MessageBox(g_hwndParent,buf,0,MB_OK);
|
{
|
||||||
|
wsprintf(msgbuf, TEXT("$0=%s"), getuservariable(INST_0));
|
||||||
|
MessageBox(g_hwndParent, msgbuf, TEXT("Message from example plugin"), MB_OK);
|
||||||
|
GlobalFree(msgbuf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BOOL WINAPI DllMain(HINSTANCE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
BOOL WINAPI DllMain(HINSTANCE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
||||||
{
|
{
|
||||||
g_hInstance=hInst;
|
g_hInstance = hInst;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue