From 4d64e4cd434426234a5c313c151cd79b6afc299e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juha=20Vehvil=C3=A4inen?= Date: Sat, 6 Jul 2002 17:50:18 +0000 Subject: *** empty log message *** svn path=/trunk/Framestein/; revision=27 --- Plugins/sharemem.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Plugins/sharemem.h (limited to 'Plugins/sharemem.h') diff --git a/Plugins/sharemem.h b/Plugins/sharemem.h new file mode 100644 index 0000000..a26d198 --- /dev/null +++ b/Plugins/sharemem.h @@ -0,0 +1,61 @@ +#ifndef __SHAREMEM_H +#define __SHAREMEM_H + +#include +#include + +// +// allocate named shared memory +// +LPVOID smalloc(HANDLE *h, char *name, DWORD size) +{ + LPVOID p; + + *h = CreateFileMapping( + INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, + size, name + ); + + if(*h==NULL) return(NULL); + + p = MapViewOfFile( *h, FILE_MAP_WRITE, 0, 0, 0); + + if(p==NULL) + { + CloseHandle(*h); + return(NULL); + } + return(p); +} + +// +// open access to named shared memory +// +LPVOID smopen(HANDLE *h, char *name) +{ + LPVOID p; + + *h = OpenFileMapping(FILE_MAP_ALL_ACCESS, TRUE, name); + + if(*h==NULL) return(NULL); + + p = MapViewOfFile(*h, FILE_MAP_WRITE, 0, 0, 0); + + if(p==NULL) + { + CloseHandle(*h); + return(NULL); + } + return(p); +} + +// +// cleanup +// +void smfree(HANDLE *h, LPVOID p) +{ + UnmapViewOfFile(p); + CloseHandle(*h); +} + +#endif -- cgit v1.2.1