⟩ What are the purposes of AddRef, Release and QueryInterface functions?
Query Interface method is used to get the pointer to the
interface specified in one of the parameters of this
method. Client then uses this pointer to call the method of
the component.
AddRef and Release are used to increase and decrease the
count of the instance of component loaded in memory
respectively. when the count reaches zero the component is
unloaded.