/* ------------------------------------------- Copyright Mahrouss Logic ------------------------------------------- */ #pragma once #include #include #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