diff options
Diffstat (limited to 'Private/ObjectKit/ObjectKit.hxx')
| -rw-r--r-- | Private/ObjectKit/ObjectKit.hxx | 37 |
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 |
