summaryrefslogtreecommitdiffstats
path: root/private/ole32/olethunk/olethk32/mmodel.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'private/ole32/olethunk/olethk32/mmodel.hxx')
-rw-r--r--private/ole32/olethunk/olethk32/mmodel.hxx88
1 files changed, 88 insertions, 0 deletions
diff --git a/private/ole32/olethunk/olethk32/mmodel.hxx b/private/ole32/olethunk/olethk32/mmodel.hxx
new file mode 100644
index 000000000..be7da2be2
--- /dev/null
+++ b/private/ole32/olethunk/olethk32/mmodel.hxx
@@ -0,0 +1,88 @@
+//+---------------------------------------------------------------------------
+//
+// Microsoft Windows
+// Copyright (C) Microsoft Corporation, 1992 - 1994.
+//
+// File: mmodel.hxx
+//
+// Contents: CMemoryModel
+//
+// History: 29-Sep-94 DrewB Created
+//
+//----------------------------------------------------------------------------
+
+#ifndef __MMODEL_HXX__
+#define __MMODEL_HXX__
+
+//+---------------------------------------------------------------------------
+//
+// Class: CMemoryModel (mm)
+//
+// Purpose: Defines an abstract interface to memory allocation
+// so that code can be written which uses both 16 and
+// 32-bit memory
+//
+// History: 29-Sep-94 DrewB Created
+//
+//----------------------------------------------------------------------------
+
+class CMemoryModel
+{
+public:
+ virtual DWORD AllocMemory(DWORD cb) = 0;
+ virtual void FreeMemory(DWORD dwMem) = 0;
+ virtual LPVOID ResolvePtr(DWORD dwMem, DWORD cb) = 0;
+ virtual void ReleasePtr(DWORD dwMem) = 0;
+};
+
+//+---------------------------------------------------------------------------
+//
+// Class: CMemoryModel16 (mm16)
+//
+// Purpose: 16-bit memory model
+//
+// History: 29-Sep-94 DrewB Created
+//
+//----------------------------------------------------------------------------
+
+class CMemoryModel16 : public CMemoryModel
+{
+public:
+ CMemoryModel16(BOOL fPublic)
+ {
+ _fPublic = fPublic;
+ }
+
+ virtual DWORD AllocMemory(DWORD cb);
+ virtual void FreeMemory(DWORD dwMem);
+ virtual LPVOID ResolvePtr(DWORD dwMem, DWORD cb);
+ virtual void ReleasePtr(DWORD dwMem);
+
+private:
+ BOOL _fPublic;
+};
+
+//+---------------------------------------------------------------------------
+//
+// Class: CMemoryModel32 (mm32)
+//
+// Purpose: 16-bit memory model
+//
+// History: 29-Sep-94 DrewB Created
+//
+//----------------------------------------------------------------------------
+
+class CMemoryModel32 : public CMemoryModel
+{
+public:
+ virtual DWORD AllocMemory(DWORD cb);
+ virtual void FreeMemory(DWORD dwMem);
+ virtual LPVOID ResolvePtr(DWORD dwMem, DWORD cb);
+ virtual void ReleasePtr(DWORD dwMem);
+};
+
+extern CMemoryModel16 mmodel16Public;
+extern CMemoryModel16 mmodel16Owned;
+extern CMemoryModel32 mmodel32;
+
+#endif // #ifndef __MMODEL_HXX__