-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUnknownClass.h
95 lines (83 loc) · 1.72 KB
/
UnknownClass.h
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
//================
// UnknownClass.h
//================
#pragma once
//======================
// Forward-Declarations
//======================
class String;
template <class _obj_t> class Handle;
//==============
// Unknown Type
//==============
enum class UnknownType
{
None,
Int32,
Int32Ptr,
Int64,
Int64Ptr,
UInt32,
UInt32Ptr,
UInt64,
UInt64Ptr,
Float,
FloatPtr,
Double,
DoublePtr,
Char,
WChar,
String,
WString
};
//===============
// Unknown Class
//===============
class UnknownClass
{
public:
// Con-/Destructors
UnknownClass(UnknownClass const& Value);
UnknownClass(INT Value);
UnknownClass(INT* Value);
UnknownClass(INT64 Value);
UnknownClass(INT64* Value);
UnknownClass(UINT Value);
UnknownClass(UINT* Value);
UnknownClass(UINT64 Value);
UnknownClass(UINT64* Value);
UnknownClass(FLOAT Value);
UnknownClass(FLOAT* Value);
UnknownClass(DOUBLE Value);
UnknownClass(DOUBLE* Value);
UnknownClass(CHAR Value);
UnknownClass(WCHAR Value);
UnknownClass(LPSTR Value);
UnknownClass(LPCSTR Value);
UnknownClass(LPWSTR Value);
UnknownClass(LPCWSTR Value);
UnknownClass(Handle<String> Value);
// Access
BOOL Get(INT& Value)const;
BOOL Get(INT*& Value)const;
BOOL Get(INT64& Value)const;
BOOL Get(INT64*& Value)const;
BOOL Get(UINT& Value)const;
BOOL Get(UINT*& Value)const;
BOOL Get(UINT64& Value)const;
BOOL Get(UINT64*& Value)const;
BOOL Get(FLOAT& Value)const;
BOOL Get(FLOAT*& Value)const;
BOOL Get(DOUBLE& Value)const;
BOOL Get(DOUBLE*& Value)const;
BOOL Get(CHAR& Value)const;
BOOL Get(WCHAR& Value)const;
BOOL Get(LPSTR& Value)const;
BOOL Get(LPCSTR& Value)const;
BOOL Get(LPWSTR& Value)const;
BOOL Get(LPCWSTR& Value)const;
private:
// Common
alignas(8) BYTE m_Buffer[8];
UnknownType m_BaseInfo;
};