This repository was archived by the owner on Dec 19, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathI001_Rio.h
More file actions
126 lines (99 loc) · 3.24 KB
/
I001_Rio.h
File metadata and controls
126 lines (99 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
//
//
#ifndef __I001_RIO_H__
#define __I001_RIO_H__
//
#ifdef _AFXDLL
#define DECLARE_DYNAMIC_EX(class_name) \
protected: \
static CRuntimeClass* PASCAL _GetBaseClass(); \
public: \
static const AFX_DATA CRuntimeClassEx class##class_name; \
virtual CRuntimeClass* GetRuntimeClass() const; \
#define _DECLARE_DYNAMIC_EX(class_name) \
protected: \
static CRuntimeClass* PASCAL _GetBaseClass(); \
public: \
static AFX_DATA CRuntimeClassEx class##class_name; \
virtual CRuntimeClass* GetRuntimeClass() const; \
#else
#define DECLARE_DYNAMIC_EX(class_name) \
public: \
static const AFX_DATA CRuntimeClassEx class##class_name; \
virtual CRuntimeClass* GetRuntimeClass() const; \
#define _DECLARE_DYNAMIC_EX(class_name) \
public: \
static AFX_DATA CRuntimeClassEx class##class_name; \
virtual CRuntimeClass* GetRuntimeClass() const; \
#endif
#define _DECLARE_DYNCREATE_EX(class_name) \
_DECLARE_DYNAMIC_EX(class_name) \
static CObject* PASCAL CreateObject();
#define DECLARE_SERIAL_EX(class_name) \
_DECLARE_DYNCREATE_EX(class_name) \
AFX_API friend CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb);
//
#define IDID(n) #n
//
#define _IMPLEMENT_IMPORT_RUNTIMECLASS_EX(class_name, base_class_name, wSchema, pfnNew, prof) \
CRuntimeClass* PASCAL class_name::_GetBaseClass() \
{ static CRuntimeClass* p = NULL; \
if ( !p ) p = GetRuntimeClassID( IDID(base_class_name) ); \
return p; } \
AFX_COMDAT AFX_DATADEF CRuntimeClassEx class_name::class##class_name = { \
{ #class_name, sizeof(class class_name), wSchema, pfnNew, \
&class_name::_GetBaseClass, NULL, }, \
NULL,NULL,NULL,NULL,NULL, prof }; \
CRuntimeClass* class_name::GetRuntimeClass() const \
{ return RUNTIME_CLASS(class_name); } \
#define IMPLEMENT_IMPORT_SERIAL_EX(class_name, base_class_name, wSchema, prof) \
CObject* PASCAL class_name::CreateObject() \
{ return new class_name; } \
_IMPLEMENT_IMPORT_RUNTIMECLASS_EX(class_name, base_class_name, wSchema, \
class_name::CreateObject, prof) \
AFX_CLASSINIT _init_##class_name(RUNTIME_CLASS(class_name)); \
CArchive& AFXAPI operator>>(CArchive& ar, class_name* &pOb) \
{ pOb = (class_name*) ar.ReadObject(RUNTIME_CLASS(class_name)); \
return ar; } \
//===========================================================================
// Polymorphic Archive Class Interface
class CPmArchive : public CArchive
{
protected:
CPmArchive(CFile* pFile, UINT nMode, int nBufSize = 4096, void* lpBuf = NULL);
virtual ~CPmArchive();
public:
void ArchiveVerify( BOOL bFormatOK );
};
//
struct CRuntimeClassEx
{
CRuntimeClass rtc;
LPVOID padd1;
LPVOID padd2;
LPVOID padd3;
struct CPluginRtc* m_pPluginRtc;
LPVOID padd5;
LPCTSTR m_lpszProfile;
LPVOID padd6;
LPVOID padd7;
LPVOID padd8;
LPVOID padd9;
};
//
enum NOCRESULT
{
NOC_FAILURE= 0,
NOC_COMPLETE= 1,
};
//
class IRio : public CObject
{
public:
virtual void Serialize( CPmArchive& ar ) = 0;
virtual NOCRESULT NewObjectConstruct( LPCTSTR lpszProfile = NULL ) = 0;
virtual void DeleteThis() = 0;
virtual void SerializeUserCondition( CPmArchive& ar ) = 0;
virtual INT OnMessage( LPVOID pMsg ) = 0;
};
#endif // !__I001_RIO_H__