Utility classes used by wrappers.
This is just a class with a virtual destructor. Anything inheriting from this has the ability to be destroyed anywhere, and that's a powerfully important concept in C++.
This is a CLxObject class which is reference-counted using explicit acquire() and release() methods.
This template class creates a container for any CLxRefCounted type. The reference counting is managed implicitly using set() on the holder, and the internal object's members can be accessed with ->.
Simple template list class using the next and prev pointers in the templated type.
Extension of CLxList that manages a list of allocated CLxObject types.
Simple template class for an allocated array of types. Like std::vector but much simpler.
The three things you can do with COM objects without knowing anything about them are QueryInterface, AddRef, and Release. These functions handle different data types.
- lx::IfcQuery(), lx::IfcAddRef(), lx::IfcRelease() -- for an ILxInterfaceID pointer
- lx::ObjQuery(), lx::ObjAddRef(), lx::ObjRelease() -- for an LXtObjectID
- lx::UnkQuery(), lx::UnkAddRef(), lx::UnkRelease() -- for an ILxUnknownID pointer
Globals come from querying the global object, which can be done through:
- lx::GetGlobal() -- this can take a GUID pointer or a GUID string
If you really need to deal in GUIDs, there are some functions for that:
- lx::LookupGUID() -- returns a GUID pointer from a string
- lx::GUIDCompare() -- compares two GUIDs
- lx::ThrowErr() -- throw an LxResult code if it's an error
- lx::ThrowOpt() -- throw an LxResult code if it's an error except for NOTIMPL
- lx_err::check() -- several functions with different args that throw errors on bad LxResults, false booleans, or negative ints
- CLxArm... -- related sub-classes that perform some cleanup when they go out of scope, unless disrmed