summaryrefslogtreecommitdiffhomepage
path: root/Private/ObjectKit/ObjectKit.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'Private/ObjectKit/ObjectKit.hxx')
-rw-r--r--Private/ObjectKit/ObjectKit.hxx37
1 files changed, 37 insertions, 0 deletions
diff --git a/Private/ObjectKit/ObjectKit.hxx b/Private/ObjectKit/ObjectKit.hxx
new file mode 100644
index 00000000..329b2c78
--- /dev/null
+++ b/Private/ObjectKit/ObjectKit.hxx
@@ -0,0 +1,37 @@
+/* -------------------------------------------
+
+ Copyright Mahrouss Logic
+
+------------------------------------------- */
+
+#pragma once
+
+#include <NewKit/Defines.hpp>
+#include <CFKit/GUIDWrapper.hpp>
+
+#define kObjectGlobalNamespaceSystem "HCORE_ROOT\\"
+#define kObjectGlobalNamespaceUser "HCORE_USER_ROOT\\"
+
+enum {
+ kObjectTypeProcess,
+ kObjectTypeFile,
+ kObjectTypeDevice,
+ kObjectTypeNetwork,
+ kObjectTypeInvalid,
+ KObjectTypeUserDefined = 0xCF,
+ kObjectTypeCount = 5,
+};
+
+/// \brief Object handle.
+/// \author Amlal El Mahrouss
+typedef struct Object final {
+ HCore::Char ObjectName[255];
+ HCore::Int32 ObjectType;
+ HCore::Char ObjectNamespace[255];
+
+ HCore::Void(*Release)(struct Object* Self);
+ HCore::IntPtr(*Invoke)(struct Object* Self, HCore::Int32 Sel, ...);
+ HCore::Void(*Query)(struct Object* Self, HCore::VoidPtr* Dst, HCore::SizeT SzDst, HCore::XRN::GUIDSequence GuidOf);
+} Object, *ObjectPtr;
+
+#define object_cast reinterpret_cast